This is how inkjet printers run with closed loop feedback and DC motors (which is why tearing apart printers isn't as productive as it was about 5 years ago when they all had stepper motors in them). We've got a box full of resolver wheels and more importantly the optical pickups that you need to do quadrature counting from your resolver wheel. You need IR emitter/receivers at very specific geometry to figure out which way the wheel is turning and to only see the effects of a single slit at a time. You could more than likely create a simple single slit counting system from a lense and IR tx/rx as you outlined as well, but I think it might be faster to start with a vetted commercial part from a printer - you're welcome to dig through the box.
Doing the intrepretation on a microcontroller is pretty simple - http://www.arduino.cc/playground/Main/RotaryEncoders
The only issue you run into is if you're interrupting the processor more often than it can complete its loop to increment the counter, and if you have a really high resolution resolver wheel and spin it at a good clip you might have to head down to lower level C code or a dedicated IC - http://groups.csail.mit.edu/drl/courses/cs54-2001s/pdf/hctl2000.pdf