Correct singleton lifestyles.
Removed singleton as default lifetime option.

Moved resolveParameter into Registration.
Registration building now done through RegistrationBuilders that take in registration container in order to build Registrations.
Using explicit parameters instead of relying on 'this'.
Moving registration building into Container constructor.
Parent registration map passed into ContainerBuilder's build instead of its constructor.
Better encapsulation of container scope objects.
Tests to ensure that sub-container inherit parent's default lifetime.