Activator optimization: first stage - cache constructor and parameter routing info

First stage of our optimization is to create caching for constructors.
I imagine the dictionary is only written a limited number of times during the first few requests. All subsequent requests would likely be reading from the same entries. I thought ConcurrentDictionary may create unnecessary overhead and I would rather pay a bit more here