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