Added new hooks `onEachRun` and `onBeforeSwitch`.  Modified `waitOn` to inherit from the hierarchy of RouteControllers.

`onEachRun` - Works similar to `onRun` in that it is called before `waitOn` hooks - however it will be run on each new page reload (useful for permission checks)
`onBeforeSwitch` - Works similar to `onBeforeAction` except it it called before the current layout changes / is destroyed. Calling `pause()` in this hook will keep you on the current page.
`waitOn` - now uses the same "hook inheritance" as regular action hooks.

Hooks are compiled by common function `RouteController#_collectHooks`