Added IAssemblyLoadContextFactory abstraction
- This interface creates a IAssemblyLoadContext with relevant loaders
- Updated the NuGetAssemblyLoader and ProjectAssemblyLoader to allow passing
in an IAssemblyLoadContext.
- Updated the RoslynCompiler to create a child context when loading the
preprocess assembly.

#697