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
Separate pack exclusion from compile exclusion