Refactor of Ember.Application's way of resolving objects

Refactor of Ember.Application's way of resolving objects looked up in the container. These changes allow the app to specify a resolver class and make it possible to plug in alternate approaches or augment the default approaches.