Use proper event delegation

Implement a [simple](https://developers.google.com/analytics/devguides/collection/analyticsjs/events#crossbrowser) add/removeEventListener like @w0rm mentioned in #16 

The [current pattern](https://github.com/skidding/dragdealer/blob/bd92fe7fe7a708835dfd5af0037dc4df1ad89a83/src/dragdealer.js#L718-L722) is very old and doesn't function well with dynamic websites when you bind and unbind instances during the course of an app experience