New API: `event.detail.prevent('tap')` and `event.detail.prevent('track')`
Fixes#1823
Forward `preventDefault` from gesture events to source events
`gesture.preventDefault()` is equivalent to
`gesture.detail.sourceEvent.preventDefault()`
Remove `preventDefault()` on mousemove in track, user must use
`track.preventDefault()` to hide user selection or use `user-select:none`
Fixes#1824
Keep generated event handlers, attach with WeakMap to host element
Add tests for events
Support multi-dispatch unlisten (must give event name and handler function
name).
Fixes#1639
Allow behaviors to easily override event listener creation
Expose a Behavior
Use a coarse mouse on/off feature for handling synthetic mouse events and ghost clicks
Implement all in the burndown list
Add a smoke test
only handle one finger with touchevents
Make sure track state can be "start" for mouse
Minor fix for touchevent single-finger check
bolt basic gestures onto core
add tests for gesture private data tracking