Reacting to System.Security.Cryptography.Encryption package rename
"kpm restore" puts SHA files on disk
Don't use the resolved items in GetLibraryExport.
- Overwrite references with the more recent target framework
Fix race condition caused by concurrent access to global cache
"kpm restore" prints out the dependency graph after restore
Refactor build to not depend on roslyn directly
- Added interfaces IProjectBuilder and implementation
- Decoupled compiling to disk and package building
- Added builder as a concept to project.json's extensibility
Refactor services
- Changed loader to services.
- Project services include a loader, builder, metadata provider and
  a library export provider.
- Added RoslynLibraryExportProvider and ProjectLibraryExportProvider
- Removed ProjectBuilder.cs
Remove duplicate logic
- Made ApplicationHostContext which is a helper that has
 consistent logic for creating the right sequence of objects
 for a proper runtime environment.
- Use it from kpm build/pack, k run and the design time host
- Reimplemented kpm build --check with IProjectMetadataProvider
Copy metadata references before expanding them
Use ILibraryExportProvider as the compilation interface
- Call into the ILibraryExportProvider from the RoslynAssemblyLoader,
  RoslynProjectBuilder and RoslynProjectMetadataProvider
- Simplified caching in RoslynAssemblyLoader and RoslynLibraryExportProvider
- Added a noop IFileWatcher to the host container
- Remove caching and library export functionality from the RoslynCompiler
Moved GetCompilationContext into a shared helper
Allow adding services to the ApplicationHostContext
- Fixed the file watcher
RoslynAssemblyLoader loads assembly multiple times when concurrently
invoked

The call to CompileInMemory produces a new assembly for the assembly name
every time it is invoked. Consequently when it's invoked concurrently, we
end up with two assemblies that represent two instances of the same
source.

We'll prevent this by preventing concurrent calls to IAssemblyLoader.Load
from the bootstrapper
Fix infinite recursion caused by kpm pack to a dir in project dir
Renamed configurations to frameworks in project.json
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.