Pointer Event polyfill, support for multiple touches

Extremely massive overhaul to the pointer events polyfill. Now follows the pointer event spec to the letter, converts multiple touches to multiple pointer events of the respective type. Provides "buttons" property and not "button" to allow for standardization, which is a bitmask of all buttons down. Will likely re-add the "button" property following the pointer event spec again. Handles more of the inconsistent behaviors provided by the touch events spec and improved the way it prevents double firing of events.