Add basic mouse and keyboard controls.

Issues:
* moving with the mouse adds some tilting artifacts
* the keyboard controls move the camera in world coordinates instead of local coordinates