Significantly clean up DomEvent.Pointer code

This is a thorough clean up of `DomEvent.Pointer.js` code to make it much simpler and more consistent with Leaflet conventions. 

```
Uncompressed: 216.43 KB (-834 bytes)
Compressed: 122.37 KB (-355 bytes)
Gzipped: 32.68 KB (-135 bytes)
```

Main points:

- made `_pointers` an object rather than an array for much easier upkeeping (add/remove/update)
- made `addPointerListenerStart`/etc methods private (used only by `addPointerListener`)
- DRYed up and simplified parts of the code

This update is not tested at all as I don't have access to Win8 devices — @danzel could you review this and merge if everything's OK?