Made routes compiler its own plugin

* Improved the structure of routes compilation, so that it's more configurable
* Made the incremental compilation good
* Took many of the old integration tests for the router and turned it into a scripted test
* Wrote scripted tests for incremental compilation
* Included mocha tests for the JavaScript reverse router in incremental compilation

Yeah, it was quite useful here... and I tried looking at some of the equivalent SBT things, just working out whether they were able to do what I wanted was really difficult, that code's really hard to understand.