Fix for #347

This PR adds the ability to override any default service in CompositionRoot by passing a collection keyed off of contract Type which contains either an instance or a Type. The logic within then conditionally registers the override if present, or the default.

This also contains a fix that no longer requires manually creating instances via secondary container.