add accessors for parent and root router

Plugins may want to add things to higher points in the routing tree.
add before/after dispatch events

This lets us have generic control over dispatching. If we want to ban
people from the bot, we can use a before_dispatch listener.