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
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
Remove unused references
Use '/' instead of '\' when generating relative paths
Handle NuGet packages having multiple assemblies
Project references are added based on output name
Use a better way to tell whether an assembly comes from a NuGet package