Fixing pointer events bug falsely detecting multiple pointers

It is possible for IE to fire a "down" event without a corresponding "up"
event. If this happens, a new "down" event will be falsely added as an
additional pointer. This commit first makes sure the pointer from the
down event is not already in the store before adding it (based on
pointerId).

Fixes #664