Deft application enhancements

John, what do you think of this. Added some template methods to Application. If a subclass doesn't override them, behavior remains as it is currently. These changes are things I've added to my own custom base Application class that my apps extend.

beforeInit() template method: not sure if it is actually very useful but seemed worth adding to make the changes symmetrical.

buildInjectorConfig() template method: if this returns a config object, it is automatically passed to Injector.configure(). Very handy in Jasmine tests, since you can extend your Application class with a test-specific class (aka JasmineApplication), override this method, and inherit the injector config, as well as modify the injector config (set mock data mode, or force certain dependencies to eager, etc.). So you eliminate a lot of duplication in your test configuration.

afterInit() template method: also handy for tests, since your main Application can use afterInit() to create the Viewport, but your test afterInit() can start the Jasmine runner.

Thoughts?