Make mono run as .NET 4.5.1
- Turns out mono's 4.5 profile (for the versions of mono we support)
is actually compatible with .NET 4.5.1.
- Fix problem with compiling against reference assemblies
that were not resolved via dependency resolution.

#511
#374
Removed too much code in a previous commit
- Fixed regression
Allow no-throw behavior when command-line parser sees an unexpected option
Fix "kpm restore" with global.json

- Use the global.json as the single source of facts. No project.json is
  needed.
- Strictly restore the packages in global.json. No more no less.
- Restore exact version of a package when restoring with gloabl.json
added support for async command line
exception test
Check for correct exception
fixed test
Add directories to current cache context
- Flow the ICacheContextAccessor through the DI system
- Watch all directories that source files are currently in (including)
 the project directory.

#552
Reacting to System.IO package version change
Reacting to System.ObjectModel package version change
Merge pull request #485 from Alxandr/feature-async-cmd

Added support for async command line
Working towards precompile project hook

* Introduces the idea of "aspect" assembly that can be asked for
* Roslyn compiler specifically will ask for and return
a "precompile" aspect assembly
* precompile assemblies have before/after compile hooks to
alter the "main" assembly's CSharpCompilation details
Only attempt to load preprocess aspect if project has source files