Initial plumbing of IAssemblyLoadContext and family
- Removed IAssemblyLoaderEngine and replace it with IAssemblyLoadContext
- Added Microsoft.Framework.Runtime.Loader which has implementations of
IAssemblyLoadContext and IAssemblyLoadContextAccessor for net45 and aspnetcore50
- Use current LoadContext to LoadFile and LoadStream in different loaders
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.
- Made IAssemblyLoadContext disposable
- Fixed issues with LoadContext and infinite recursion
- Made IAssemblyLoadContext have Load(name)
- Handle ANI extraction on CoreCLR
Changed aspnetcore framework compatibility
- Updated JSON.NET to 6.0.6
- Removed win8 aliasing and added an temporary ugly heuristic for aspnetcore50
compat
- Added unit tests

#596
Use XDocument to do XML operations when generating web.config
Remove k.ini file generation during "kpm pack"
Add functional tests for web.config generation during "kpm pack"
Reacting to System.Collections.Concurrent versioning change
Skip non-dll files when reading PE metadata
Fix "kpm build" output

- Use better format with coloring
- Fix a bug when building with unresolved dependencies
Apply similar format to "kpm pack" output
Rough draft