Use the DTH runtime framework to get the correct AssemblyLoadContextFactory.
- Add some caching so that the common case only does the work once