Whitespace cleanup
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.

The concept of subcontainers (i.e. parent / children containers) was
removed as part of this refactoring. It was a legacy feature that's no
longer used within Ember core and has never been publicly documented,
so it's safe to remove without deprecation.
Convert Application to use both Registry & Container
Fix tests related to Registry / Container refactoring
Require a Registry instance to be passed into Container constructor
Remove comments / old tests / TODO related to Container refactor

Questions raised in comments and TODOs will be raised in the PR.
Improve docs for Container / Registry
Container constructor signature now takes `registry` as first arg

Also, change `Container#register` to private `Container#_register`
Introduce Registry#container method

This is the preferred method for constructing a Container based on its
associated Registry.
Initializers now expect a registry instead of a container
Implement deprecated lookup and lookupFactory on Registry

The first associated container created through registry.container() is
tracked as _defaultContainer. Calls to `lookup` and `lookupFactory` are
then forwarded to this container.

This prevents breaking Ember 1.x initializers that perform more than
registrations in their `initialize` methods.
Improve arguments check in Container#reset

As per @stefanpenner’s concerns, checking `arguments.length` is more 
strict and can prevent a reset of the entire cache if `fullName` is
mistakenly set to a falsey value.

Also, adds docs for `reset`.
Consolidate injection concatenation in buildInjections.
Remove items from caches before destroying the items.

If `member.destroy` errors, caches won’t be corrupted.
Prevent re-registration of factories that have been resolved.

An explicit `unregister` should be required to prevent re-registration
of a factory that has been resolved (and therefore probably used to
instantiate objects).
Replace some helper methods with inline implementations.

`addInjection`, `addTypeInjection`, and `initRules` are arguably more
clear inline rather than separate methods that take a large number of
arguments.
Base Container constructor assertion on boolean

Avoid the possibility that `registry` could be a function that could
be called as part of the assertion.
Ensure that registry.unregister() is called prior to register().

Also, clean up indentation inconsistencies.
Merge pull request #9981 from dgeb/container-registry

Decouple Registry from Container