Prevent unnecessary re-rendering when only route context has changed

It should only be necessary to run `renderTemplate` when a route is
entered. Subsequent changes to a route's context Just Work(tm) thanks
to the usual magic of bindings.

In addition to a theoretical performance benefit, this change gives
the controller more control over precisely when and how the view will
transition from model-to-model. (In my case, I'm using this capability
to nicely animate the transition.)

This change doesn't break any unit tests or change the API. But if
someone is doing something weird in `renderTemplate` (like choosing
their template based on the model, or doing something else with
side-effects), they will get breakage. I think those cases are
sufficiently pathological not to worry about.
Adding regression test