Activator performance improvement

Shouldn't close the previous PR early. Turns out I did not have to change much of my design.

Pinging previous trackers
@pranavkm
@halter73 
@rynowak
@ipjohnson
@yishaigalatzer 
Change of ActivatorUtility to use TypeActivator caused a requirement for ITypeActivator to be present at all time for ServiceProvider.
If I register TypeActivator as a simple service, when service.CreateInstance is being called it would call ActivatorUtility.CreateInstance, which would go look for ITypeActivator and hat triggers the same service.CreateInstance to be called. This is an infinite recursion. This class is here to prevent that.