refactored demo, streamlined tests, added events.cancel, will get called if touchcancel/MSPointerCancel gets triggered, in turn it will cancel the gesture