Scriptable camera

* add support for scriptable camera support to JS
* JS support to set camera mode: first person, third person, mirror, and independent (third person that doesn't follow) 
* JS support to set position and orientation of independent camera
* tweaks to application to handle possible camera changes from JS
* added ability to disable joystick control from a script (so a script can remap the joysticks)
* example of script that uses hydras to move an independent camera
* cleaned up Camera.cpp/Camera.h to match coding standard
* added Camera.computePickRay() which returns an in world (meters) origin/direction ray for camera to point on screen.

closes #1911