Event improvements

* Return a removal function when adding an event listener.
* Add an EventHelper class.  This makes it easy to remove any number of event listeners on any number of events when destroying an instance.