#381 - listen to events on demand

Not complete. However I do want to get more eyeballs on this.

Work remaining:
- add tests
- make sure all the event plugins work
- how to deal with window resize events and stuff?