Container creates a Registry if none is supplied.

In order to avoid breaking existing usages of Container in the wild, an
isolated registry will be created if none is supplied to the
constructor. This behavior is deprecated.

Note: This commit includes a temporary workaround for the lack of 
support for circular module dependencies in v0.4.0 of the ES6 
transpiler.
can we avoid re-writing a parameter? is annoying to debug when encountered