@heff enhanced the event listener API to allow for auto-cleanup of listeners on other componenets and elements. closes #1588