Rename Application to ApplicationContext.

We will use Application as a container for ApplicationContext instances instead,
this will allow us to switch them out as required.
Add Application class as the entry point for module defs, requests etc.

The new Application class will maintain a pool of ApplicationContext instances,
and will route requests through to the appropriate context.
Remove unused method.
Dispose IOC container when finished with application context.