V0.2

A complete revamp. Massively simplify the `get_handler_function.js` by keeping things close to how `router.js` expects them to be. I.e. routes are now singletons that exist throughout the lifetime of the application. Handler stll proxies all methods to route, just because we want to be able to load routes asynchronously in `beforeModel` hook.

The commit history is not very clean, but it was a bit of a mad refactoring so I'll probably just keep it like this and keep moving forward.

This seems to be working extremely well and fixes numerous issues from the previous version
* routes sometimes losing parent should be fixed
* redirection in `beforeModel/model/afterModel` works now - no more setTimeouts
* behaviour of update is more intuitive - first activate is called, then update can handle the update, but only if parent states haven't been exited
* when same routes are needed but some params in the parent route has changed - we reactivate each state instead of keeping them as is