First set of changes to make DTH run faster
- Break processing into 2 stages.
  - Project information and dependency resolution
  - Compilation
- Added caching to the dependency resolution and added
a project.json cached dependency.
- Modified ProjectExportProviderHelper to be public and to only
allow filtering the exports via a predicate.
- Removed ANIs from source completely
(this will make an appearance in a later change)
- Always compile when GetDiagnostics or GetCompiledAssembly is called
- This should also greatly reduce the amount of memory consumed by
default. The trade off is that we need to compile on demand when
the runtime requests but that seems to be very fast once roslyn is
warm.

#883 #889
Only reconcile if changes were made
Fixed a bug with duplicating sources
Fine tune compilation changes
- Remove source files update as precompilation
will be handled differently.
- Only emit the required target framework for assemblies.
- Requesting assemblies no longer compiles, the logic was changed to:
 - On the very first request for compilation, mark the request for assemblies.
 - When that assembly is outdated, trigger a recompile for that particular
   target framework. The idea is that you will be running the same project
   over and over again.
- Swallow IO exceptions as they are usually connections dropping (which
is expected)
Conservative project compilation
- Only return new data if the ILibraryExport has changed
- Don't send diagnostics back to the initial connection. Only
send them when requested.
Wrap the K_APPBASE and --appbase parameters
Notify anyone waiting for diagnostics when unhandled errors occur.
Send the exception message back on unhandled error, not the stack.
- Keep tracing the stack for klr.exe log
Add appbase to k-crossgen.cmd
"kpm wrap" updates existing projects instead of creating new ones under wrap folder

- Only add wrap folder to global.json when we create projects under wrap
- "kpm wrap" doesn't update existing project version info in project.json
- NuGet dependency versions and bin/pdb paths should always be updated
- Resolve root dir for each wrapped project
- Make assembly/pdb paths configuration-agnostic
Update KProj to latest version
Fix scripts failure when KRE is installed under Program Files
Remove CsprojDumper.exe and use embedded resource ReferenceResolver.xml
Fixed bug with getting diagnostic for multiple target frameworks.
The build-time special folders are lower-case
KRE dev install
Write forward slashes into the json files
Add name for path separator arguments
Modify "kpm pack" functional tests to use forward slashes in json files
Peek into project refs to give more details to the IDE
- Added WrappedProject to TargetFrameworkInformation
- Return the wrapped project file or assembly instead of a project reference
where appropriate.

#945