Mouse & Touch Sync Velocity

These three commits fix two problems. If desired, they can be split up and issued as separate pull requests.

##### Double eventing on MouseDrag 6d27f97 
If you had a mouse drag starting on an element, left the element, and passed over it again, it would trigger another mouseleave event. Without this fix, multiple event listeners would be attached to document.body, causing the event to be fired many times. 

##### Unstable Velocity 1e12fea & 6d3b38b
Previously, velocity was only the delta between the current frame and the last. This led to very inconsistent velocity values. By taking the delta from 10 frames back, the velocity values are much more stable. It also eliminates the possibility of receiving a random [0,0] velocity return, which was the main issue we ran into. 

Doing some pretty basic testing, and dragging as smoothly as possible in an upwards right angle, the average variability between each velocity delta is below. 
```js
With frame delay
0.5696997600166982% 
3.0226436369485223%
Without 
5.7359798910147836%
5.66135823561128 %
```

@michaelobriena