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 
I don't think that there will be any types that are both instantiated by the framework and the ServiceProvider, meaning there is no real need for a shared cache.

Even if you do decide to share the same TypeAcvtivator instance, you do not need to create this ActivatorService. Just register the TypeActivator as a normal service. Since you are providing the TypeActivator instance (which doesn't need an ITypeActivator or ActivatorUtilites to resolve), there is no recursive dependency.

I don't think there is any need for ServiceProvider to use a passed-in ITypeActivator, and I still don't see the problem with having a TypeActivator used solely by ServiceProvider.