Unify handler hook logic into `callHook` util fn

This gets rid of lots of 

    if (handler.foo) { handler.foo(); }

in favor of 

    callHook(handler, ‘foo’)

which will also try `_foo` as a hook first,
if one is provided, so as to not clobber any
other API on whatever object is being used
as a route handler.