Add touch cancel handling

This pull request contains three commits:

- Cancel active touch points when QEvent::TouchCancel received.
- Reset internal state when touch starts and moving stops.
- Reset dragging and pinching on touch cancel.

All are related to the same problem area. Currently "Gesture:SingleTap" stops working when touch cancel is received.