Refactored routes compiler

* Separated concerns, models classes, parser and compiler live in
  separate places
* Switched to using twirl to generate the router
* Implemented source mapper scripted test
* Deleted some no longer used change detection code (a previous commit
  changed it to use sbt-web incremental compilation)
* Made source mapping a little more robust

I changed a little bit of the source mapping.  Most of the complex
generation logic is in the templates package object, this is where most
of the complex data structure manipulation and processing is done, and
where things like method signatures are generated.  In general, I've
tried to strike a balance between readable template, and readable
generated code.
Merge pull request #3401 from jroper/router-refactor

Refactored routes compiler