Add interact.supportsTouch()

supportsTouch returns weather or not the browser supports touch
input.
Merge branch 'master' of github.com:biographer/interact.js
Keep Interactable options in 'options' propery
Add IOptions class for easy options setting

Interactable options are now instances of IOption. IOptions.prototype is
the houses all the default options. The IOptions constructor takes as an
argument that is the the set of options that it is to have.The
properties who's `typeof` matches those of IOptions.prototype's
properties will be given to the new IOption so that options that are not
specified will fall to the defaults of the object's prototype
Rename IOption to IOptions
Improve autoscroll -use innerWidth/Height not divs
Get indexOf interactables when splicing
Update element classnames when changing options
Use indexOfElement to get index using element

No longer override protype indexOf with method to find index using
element.

Also fixed Interactable#isSet
Use actionable option properties when setting

The options object passed to interact.set should have properties
'draggable', 'resizeable' and gestureable set to true to enable each of
the related actions (no longer 'drag', 'resize' and 'gesture').
Update demo
Update tests
Add some documentation and improve formatting
Update README
Update License
Fix Interactable#squareResize
Remove duplicate interact.supportsTouch
Fix target getting in propagated mouseDowns

mouseIsDown is only set to true after the the current target.getAction()
returns a valid action. If it doesn't return a valid action, mouseIsDown
remains false and the next call of mouseDown tries to get a new target.
Bind + fire InteractEvents not custom DOM Events

Interact events are no longer dispatched as custom DOM events. They are
now fired as InteractEvent objects and to respond to an event a listener
must be bound either to each interactable or globally by binding to
interact. eg:

interactable.bind('dragend', function (event) {
        console.log(event.target.element().id + ' moved ' + event.dx + ', ' + event.dy);
    });

interact.bind('dragend', function (event) {
        console.log(event.target.element().id + ' was moved');
    });
test: use new Interactable#bind API