app: fixed mouse navigation

The original mouse movement code was implemented in about 5 mins just to get it
vaguely working. However, the incremental update to the cameras orientation is
the wrong way to handle this. So I have fixed the camera movement by storing the
camera original orientation so that dragging the mouse rotates the camera
relative to its original orientation without drifting.
Merge branch 'staging'