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 think that leads back into the discussion earlier of how much behavior can you assume out of the IServiceProvider interface. I agree it should throw an exception but if it doesn't throw one rather returning null you end up instantiating an object with a null.