Mouse Scroll Events - added support for WheelEvent, fixes

- Added support for the Wheel Event, which is the DOM3 spec.

- Wheel Scroll Event (old non-FF) and DOM Mouse Wheel (old FF) are
  supported via a non-exported reused wrapper object, WheelEventProxy.
  The proxy methods are generated one-time dynamically; future changes
  to the Mouse class (such as requiring an opt-in for mouse scroll events)
  could bypass secondary stub generation.

- FIX: Only ONE of the mouse wheel events is listened too, newest standard first.
  This fixes a bug in FF where it would use the default DOMMouseWheel.
Mouse Scroll Events - quibbles
Mouse Scroll Events - device separation

- The wheel event type is now determined in by Device

- The various input checking in Device have been moved to a new function
Merge pull request #1318 from pnstickne/wip-wheel-scroll-updates

Mouse Scroll Events - added support for WheelEvent, fixes