Disabled amd64 version of crossgen tests to work around problem
Another round of refactoring to unify project extensibility
- Made it so that the only important interface is the ILibraryExportProvider
- Removed RoslynAssemblyLoader, RoslynProjectBuilder,
  and RoslynProjectMetadataProvider. Alternatives are baked into the runtime.
- Added Emit and GetDiagnostics methods to IMetadataProjectReference. This allows
kpm build, k run and the design time host to be "compiler"/project agnostic.
Fix symbol packages
- Add all of the output to the symbol packages
- Add just the dll and xml file to the main package
Introducing IProjectExportProvider
- The ProjectLibraryExportProvider will do all the prep work to
  resolve project dependencies then will call into the IProjectExportProvider
  with a library export.
- This will make it much easier to implement other compilers as well
as "pre-compiled" projects
Fixed shared files in design time host
- Added GetSources to IMetadataProjectReference. This is so that
 the design time host can retrieve the list of files used to create the project
export. The list of files may contain more than just the files from the project list
so this is required to do anything real.
Small clean up
- Added ProjectBuildResult
- Removed IsError and GetMessages from RoslynCompiler
- Remove IsMono check from the loader and instead just check
 for an empty pdb stream.
Made project dependency resolution lazy
- Change ILibrary to take a Func<ILibraryExport> in GetProjectExport
so that cached results don't evaluate dependencies.
- Removed transitive caching since it happens for free
- Use ConcurrentDictionary for the MetadataFileReferenceFactory and
  compilation cache.
- Improved tracing in the RoslynCompiler and RoslynProjectReference
- Moved caching into ProjectLibraryExportProvider
BuildManager should return failure code when compilation fails
Extending kpm build
- Added ability to write a compiler as a package/project by
adding the default host to the host container.
- Flow configuration from klr.host.
- Specifying the KRE_CONFIGURATION env variable will also set the configuration
Delegate loading to the IMetadataProjectReference
- This avoids creating MemoryStreams in cases where
the project can load for e.g. from disk. This will come
in handy when we need to load projects from disk (precompiled)
Keep old env variable support
Improve a tracing a little bit
- Make the tracing look consistent
- Trace all calls through the DefaultLoaderEngine
- Trace the export provider that was chosen
Make CompilationContext a poco
- Moved logic into RoslynProjectReference
Reshuffle and rename things
- Renamed IHost and IHostContainer to
 IAssemblyLoader and IAssemblyLoaderContainer.
- Removed CompositeAssemblyLoader and instead added individual
 loaders to the loader collection.
- IProjectBuildResult is IDiagnosticResult
- Added tracing the LoaderContainer
- Removed Dispose from IHost
Added missing DisposableAction
Use an array instead of List<T>
Added more tracing
Improved tracing for ResxResourceProvider
Added Tracing for ANI scanning.
Don't ToList the source files