Inertia

Implements inertia for drag and resize.

When inertia is enabled, moving the pointer and releasing it at a high enough speed will trigger an `<action>inertiastart` event. `<action>move` events are then fired and their coordinates move in the direction of the launch with the speed decreasing exponentially until it is slow enough to stop. During inertia, `event.detail === 'inertia'`. The events are snapped and restricted as normal. If the `endOnly` option is true for snap or restrict then the launch path is curved so that the action ends at the snapped/restricted end point.

```javascript
// enable and use default settings
interact(element).inertia(true);

// enable and use custom settings
interact(element).inertia({
    // value greater than 0
    // high values slow the object down more quickly
    resistance  : 16,

    // the minimum launch speed that results in inertiastart
    minSpeed    : 200,

    // inertia will stop when the object slows down to this speed
    endSpeed    : 20
});

// reset custom settings and use all defaults
interact(element).inertia(null);

// change default settings
ineract.inertia(options);
```

There are also some changes to event velocity properties. When inertia is active the velocity is calculated from the current and previous interact move events. Velocity for normal move events are calculated from the two most recent native move events (`mousemove`, `touchmove` or `gesturechage`). End event velocities are no longer the the average velocities.

Closes #4