Three.js fly controls, adapted from http://threejs.org/examples/js/controls/FlyControls.js