A photodiode can of course detect light, but good luck getting any bandwidth out of it (grin). I think CD laser pickups are the way to go since they give you almost everything you need.
Actually, most LEDs can also detect light, if not as strongly as dedicated devices can. I used to work in R&D in Electronics as well as Production Engineering. Quick and dirty, a clear plastic lens in front of the LED to bring up the sensitivity and you can accomplish quite a bit. Just factor in a very low amplitude and noise filtering and simple functions / commands work just fine.