Added basic `Router.before()` syntax.

For #207
@tmeasday, Comments inline XXX CM.
Merge branch 'dev' into global-hooks
Cleaned up hooks code a fair bit. For #207

@cmather - a few things to look at:

1. I made the resolution of global hooks happen at run time as suggested. Let me know if I did it wrong.

2. I haven't changed the order of arguments. If you want to make the change, please do so, it should be pretty straightforward.

3. I added all of load/before/after/unload. I think we might as well, it's actually simpler to have them all. We don't seem to have load as a route-level option yet though?