RFC: Use @Path and @GET/@PUT/@POST for annotation router

This is an implementation based on our discussion.  It implements JAX-RS-style (don't cry) routing support for both the Controller and Controller Methods.  It removes the former `@Route` annotation.

This supports mode-limited routes.  Multiple modes can be specified for a route via the `@Dev`, `@Prod`, and `@Test` annotations.

This PR does NOT support route ordering - which I have decided may still be important for things like my Swagger module.  I still am thinking that RegEx routes do not belong here; those should be non-annotated only.

I also tweaked the  `AnnotationRouter` to implement the `ApplicationRoutes` interface - this is the same design seen in the `CasinoRouter`.

I think this moves the `AnnotationRouter` forward, but Darren should review.
I think creating your own mode is not really supported. Prod mode is eg an important signal to some plugins. Freemaker templating eg uses really aggressive caching if ran in prod mode. So you should use prod mode if running in production... On the other hand "dev" is a clear signal that Freemarker should not cache any templates so that changes show up immediately.

A cousin of "modes" is using different application.conf files. You typically want to run different stages (dev, qa, live or so) and configure different databases or services depending on the stage your Ninja app is running on. That's were different application.conf files come in handy. Simply start the servers via -Dninja.external.configuration=application_stage_qa.conf with the configuration of your choice....

I hope that makes the notion of modes a bit clearer. What does that now mean for the modes? No idea :D 

If you got any ideas how to improve the doc let me know... It should be there: http://www.ninjaframework.org/documentation/configuration_and_modes.html