Repeat 57ad3b4 for the Linux build script
Merge pull request #905 from Tragetaschen/linux-vanilla-build

Fix Linux build on a vanilla system
Moving the wait time for rapid refresh scenarios
- Move the notification of project changed to happen before the compilation
 instead of after.
- Return the list of sources files to the runtime so that it can watch files.
This allows the runtime (for certain changes) to shutdown faster than
VS can tell the DTH that anything changed.
Make help information of "kpm wrap" better
Reducing scripts
Add pointers to wrapped csprojs in wrapper project.json
Improve PathUtility
Fix broken scripts
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