Refactored state. Implemented rotation.

The rotation is not how I want it yet. Currently the velocity is applied
relative to the object's original position not relative to the camera.
Added a TODO.