Documented dependency injected routers

* Fixed a bug in routes dependency ordering
* Explained clearly the migration approach in the 2.4 migration guide
* Updated as many code samples as I could find to use dependency injected routers
* Documented how to use the injected router in a compile time injected application
* Updated all Activator templates to use dependency injected router
I would say that all controllers should use the injectable approach. First of all, it's pretty rare, at least in my experience, that a controller has no dependencies whatsoever. It also seems like a good idea to start out with the injectable approach so it's easy to add dependencies later.