Mouse pick in oculus outside of screen projection bounds + some refactoring

- Refactored ApplicationOverlay
- Centralized calls to computePickRay in Camera (Now the only place where the picking algorithm is changed for Oculus mode)
- Added notion of true mouse position.
    Getting the mouse position when it is not for a ray pick is usually for an overlay picking. getMouseX/Y() now sends back mouse position relative to the overlays. (Can potentially be outside of the screen bounds when in VR mode)
    I added getTrueMouseX/Y for cases when we want the true position on the screen (ie ray picking) as well as bool mouseOnScreen() that should be true most of the time, except if client in VR Mode and the reticule is outside of the screen projection.
- Removed mouse getting reset to the corner of the screen at startup
ditto