Get tests passing again.
WIP - Computations, stop() and run()...

- Make run _run to indicate it should be private (people sometimes accidentally
  override it)
- Move computation from router into RouteController
- Calling stop() on controller stops computation also
- Router calls stop on previous controller if it exits
- You don't need to ever manually call stop anymore, even to redirect

Next Up TODO:

- Run each hook in its own computation
- Clean up default hooks to make them opt-in
- Clean up data context api and setting
- Clean up layout setting
- Make tests pass again and then clean them up