Decouple Registry from Container

`Registry` is used for stateless factory / option registrations.

`Container` uses a `Registry` to lookup factories and options, and then
instantiates and caches objects.

This decoupling allows for multiple containers to reference a common
registry, which is key to allowing a single Ember app to support multiple
sessions.

`Container` is made backwards compatible by exposing many of its associated
registry's methods.
Convert Application to use both Registry & Container
WIP: Fix tests to work with Registry & Container

Tests are still failing due to deprecations.
Need to run with ENV['RAISE_ON_DEPRECATION'] = false;