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

First stage of our optimization is to create caching for constructors.
`TryCreate` makes it sound like you're trying to create the instance rather than the factory. Also, it would be cleaner to return a type here rather than use a out parameter - the behavior of the method does not match what `Try*` does