Fix rewriteLegacyHooks on RouteController...

- Fixes #511.
- We were previously overwriting inherited prototype hooks. Now, we
  rewriteLegacy hooks in three places: at extension time, and at ctor time for
  the options object and the instance object. rewriteLegacyHooks only operates
  on the given object and not its proto chain.