Fixes #150 - Fix before/after hooks to work properly with inheritance.

- Change before/after hooks to be instance properties vs. class properties
- runHooks collects hooks all the way up the prototype chain so they are run
  from top to bottom
- TODO: Need tests for this