Improve test ergonomics:

- app.js now exports a application class, not instance.
- acceptance tests no longer rely on App#reset, rather they create/destroy a new application instance each time.
- App no longer pollutes unit and integration tests
- startApp helper is provide for acceptance tests, boots the app in "testing mode"
- isolatedContainer is provided for integration (maybe unit) tests. isolatedContainer builds a container with "white listed" resolver rules. This helps ensure your integration test isolation remains in you control, but while still benefiting from the resolver.