Add (I)TypeActivator.CreateFactory

- The factory returned from CreateFactory should be be cached.
- Once generated, the factory is faster than CreateInstance since
  there is no need for repeated reflection.