Allow hooks to be defined on routes/handlers using fn name

Hooks defined as symbols (rather than fn lookup) will be looked up
automatically when normalizing the hooks.

This required making `normalize_hooks` an instance method. For
consistency I made `build_fns` an instance method as well.