branch/event-manager

@kadst43 @eric79 Here's the event manager driver and behavior. It's really simple and it works. Let me know what you think.
My initial interpretation upon seeing this names was that `listeners` were the functions and `listenerNode` was the node on which one of those functions would be ... maybe I would prefer the former be called `listenerNodes` for consistency?