Resolve of object registered with ReuseScope Container/Hiearchy was not
Thread Safe prior to this fix.
Tried to accomplish a minimal lock strategy for Reuse Container and
Hiearchy where lock is only taken for the very first calls to Resolve.
The private services dictionary was also updated in a non-thread safe
manner which was also fixed by a snapshot copy created on resolve-calls
and invalidated when the original dictionary is updated.