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.
Fix some javadoc errors
Merge pull request #3405 from wm3/fix-javadoc-errors

Fix some javadoc errors
Add mappers for byte and short
Merge pull request #3078 from gmethvin/mappers

Missing a lot of mappers for Short and Byte
Merge pull request #3401 from jroper/router-refactor

Refactored routes compiler
Use a stable DateTimeFormatter for writing Joda datetimes instead of creating one on every call
Dechunk result if necessary
Merge pull request #3408 from lloydmeta/feature/jodaDateWrites-stable-dateformatter

Use a stable DateTimeFormatter for writing Joda datetimes
Merge pull request #3395 from mauhiz/feature/dechunk-tests

Dechunk result if necessary
Handle 'bundle' protocol in Resources.isDirectory. Fixes #3212

Within an OSGi container, URLs' protocol is "bundle://".

In order to detect if a resource is a directory, this fix
rely on the class loader's behavior, which differ between
the standalone JVM and within an OSGi environment.
Most notably, ClassLoader.getResource returns differently
when the resource's name end with a slash.

In a standard JVM, getResource doesn't care of ending slashes,
and return the URL of any existing resources. In an OSGi container
(tested with Apache Felix), ending slashe refers to a directory
(return null otherwise).

In order to test Resources.isDirectory when the protocol is "bundle://",
there are 2 options:
a) run the test within an OSGi container (using Pax Exam),
b) simulate the behavior of an OSGi class loader, which is the
implemented solution.