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
Yes, order of parameters is deterministic, given by the order that the controllers/routers first appear in the routes file, see above:

> When you do this, Play will generate a router with a constructor that accepts each of the controllers and included routers from your routes file, in the order they appear in your routes file.