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

First stage of our optimization is to create caching for constructors.
Maybe use a return type instead? `CreateResult { Type type, int MatchLength }`?