Refactor (document and simplify)

Document the EventManager and provide a simpler interface for adding
event handlers, allowing for raw messages as well as specific event
types.