Add support for all mobile devices

Adds support for windows 8 devices (IE 10 pointer events as well as the [W3C Version](http://www.w3.org/TR/pointerevents/)) and provides a factory for extending the input abstraction

See the following fiddle as an example of extending the mobile events for implementing draggable elements (which in turn can be extended to create sliders etc)
http://jsfiddle.net/Z6tN3/1/ (Try using multiple fingers on any mobile device)

All existing mobile test pass.

Contributes to angular/angular.js#1502 and builds on angular/angular.js#2017