New features: `moveOnStartChange`, event updates, and more

This is kind of a large PR so please let me know if you'd like it split up.

This is some of the work I did on Draggable to help it play nice with my new [grid project](https://strml.github.io/react-grid-layout/examples/1.html).

The changes are:

* JSHint fixes
* Add `moveOnStartChange`. This flag tells the Draggable to update its `left` and `top` when the `start` param changes. This is used in React-Grid-Layout to move the Draggables when the layout updates.
* Added the DOM Node to the fired event. I use this in RGL for a few reasons and it's not reliably available via `e.target`, and `e.currentTarget` is set incorrectly for some reason. I thought it would be helpful to have.
* Added a class while dragging the element.
* Added a class to the body while dragging to disable user-select. Without it, it's easy to get blue highlights all over your page.

Let me know what you think - if possible it would be great to merge all of the changes rather than split them up.

Thanks