Optical Code Division Multiple Access: A Practical Perspective