move hooks to client and server
fix bug where global hooks would not be called with the correct
arguments
moved to hooks.js
move onRun and onRerun into middleware stack...

this means you'll need to use this.next() inside of onRun and
onRerun in order to move down the stack.
fix onRun and onRerun so they get the correct arguments

Make sure they're part of the middleware stack and get correct arguments