Events

Adds a full events API.  Events get normalized to friendly names, which can be mapped to one or more actions that get executed in sequence, where returning `true` in one of the actions causes the execution chain to stop.  Actions can have one or more callbacks associated with them, and a tag.  Actions can be registered and unregistered, and they can be unregistered in batch by tag (more on all of this later, when I write docs for the library).