Makes Application heavily reliant on IoCContainer

Removes the idea of extending applications in order to pass data
around, instead encouraging bootstrap objects to contribute to setting
up the provided inversion of control container.

Both MVC and Rest dispatchables will now create and deploy their
identified controller/endpoint using IoC. This means that client code
can specify its dependencies and they will be injected into the
constructor or dispatch method.