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.
Updates bootstraps with new IBootstrap signature

Brings all application bootstraps in line with new signature of
IBootstrap interface which has been updated to reflect the Application
module's new reliance on inversion of control over extensions.
Removes AgeGate controller

This would have needed updating to reflect changes in the Controller
abstract class. However, since it was not developed with tests, it seems
more sensible to remove it and build properly if needed at a later time.
Comments unwritten tests so Application passes
Merge pull request #1 from peteonline/feat-ioc-heavy-application

Makes Application heavily reliant on IoCContainer