Workaround for running DTH on mono

The process Exited event fires even though the caller is still running.
This is a workaround that skips the event altogether. This does mean
however that the caller will be responsible for terminating DTH on
mono environments.
Enable to script block in Mono environment

Rules:

In non-mono environment, if the ComSpec exists the script block will
wrapped in cmd /C, otherwise the first argument will be used as FileName
for the new process.

For mono environment if the given script path can be found after appending
.sh to it then execute that script with /bin/bash. Otherwise use the
script name as FileName for process start info.
Merge pull request #873 from OmniSharp/dev

Workaround for running DTH on mono
Give a warning in the KRE trace log when PDB generation is not supported
Add functional tests for k.cmd (ApplicationHost)

- Extract common utils for functional tests to an individual project
- Add DisposableDirPath for neater cleanup logic
Enable KRuntime to be built on Mono

Following changes are made to achive the goal

1. Reorganize the makefile:
  a. #build-compile task is override
  b. klr, klr.core45, and klr.net45 as the only three native projects are
     built in their own tasks. Readability is therefore improved.
  c. The list of cross-platform projects are clearly listed.
  d. Skip building klr, klr.net45 and klr.core45 on Mono
2. Make Mono Entry build cross-platform
3. Add scripts wrapping the xcopy command
4. Update the nuspec at compile time to ensure the directory separator
used in it are platform-compatible
Add "kpm wrap" command

- Add CsprojDumper, a tool used to dump csproj references
- "kpm wrap" creates project.json wrappers for csprojs in 'wrap' folder
- "kpm wrap" updates global.json to include 'wrap' folder as sources
- Project references are added based on output assembly name
"kpm restore" only caches http responses with success status code
Expose the project build output folder to project.json
Fix test failure in ChangingLanguageVErsionIsEffective
Update the post build scripts to use project:BuildOutputDir
Exclude 'wrap' from kpm commands on Mono
Small null check to make errors nicer for unresolved deps
Move CsprojDumper from tools folder to src folder
Fix package verification target
Added IServiceManifest as implemented on the default ServiceProvider
Only include a few types in the manifest
- Added includeInManifest to servierProvider.Add
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.