Implemented injectable router

* Replaced Routes.setPrefix with Routes.withPrefix
* Created RoutesPrefix so that there was no direct dependency from the reverse router to the forwards router
* Applied RoutesPrefix object change to old static router
* Created new injected forwards router
* Implemented abstraction in the sbt plugin that allows selecting a routes generator
* Copied existing routes-compilation scripted test to new injected-routes-compilation scripted test that uses injected routers
Instead of returning `Either[routes object, routes class]` here, maybe you could return some sort of `RoutesFactory` thing that abstracts the details of creating or getting the value?