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
We don't either.  For the Java APIs, we don't have much of a choice - since we want to maintain the old static methods for now, which means we can't use the same class because those methods can't both be instance methods and static methods.  For the Scala APIs, in many cases the *Api class already existed, it just wasn't something that users usually used.

We're not 100% decided on this, but we're thinking that we'll take advantage of the epoch version shift in Play 3 to clean up naming across the entire project.  We'll then put in a consistent naming strategy for all APIs, for example, with capitalisation (WSClient becomes WsClient for example).  In the mean time, we'll just do what we can to work around existing naming.