MSPointerMove returns invalid and inconsistent pointer data on the "end" event. For instance, a two-touch event may have pointers 1017 and 1018. When both fingers are released simultaneously, two end events will fire. However,
rather than firing once per event it will fire the same event twice.

We can't reliably remove pointers from our container due to this buggy behavior. Fortunately, MS sends its pointer events constantly as the gesture is held, so there's no need to maintain this list; If we clear the list, it will
be repopulated with a precise and accurate pointer list almost immediately.