On first run with migrations

Made `controller.isFirstRun` work correctly. There are 4 distinct cases I can think of when a route filter/action might run:

1. When the user first loads up the app at a given URL
2. When the user browses to a different URL in the app
3. When the same URL re-renders thanks to reactive changes, for a variety of reasons.
4. When the same URL re-renders thanks to hot code reload.

This PR sets `isFirstRun` to `true` in cases 1 + 2, and `false in cases 3 + 4.

No tests exist yet (I'll wait for you to bring them back up, although I'm not sure the best way to test the HCR part).