Use a per-element gesture registration system.

This provides better ergonomics for touch, removes a global per-shadowroot MutationObserver, and only generates gestures
that are being listened for.

Need metadata for event -> dependency mappings

Remove ShadowDOM Polyfill logic

Handling gestures at the element level rather than the scope level should be a much cleaner fix for #4

Remove MutationObserver and Installer

Per-element tracking removes need for watching DOM

addGesture and removeGesture

only set touch-action if one is given

remove installer from karma config