Fix the socket problem and mono
- Use ipv4 since we only care about the loop back adapter

#526
Cache assembly metadata properly
- Caching the metadata itself instead of the MetadataReference
Remove OPC and WindowsBase
- Removed use of OPC from the runtime now that mono supports
  System.IO.Compression
Simplified IsDifferent based on CR feedback
Add caching during kpm build
- Cache is shared across all configurations and target frameworks
- Caching across multiple things will quickly expose issues if we're
caching using cache keys that aren't unique enough.
Removed legacy configurations
Cached assembly neutral interfaces that come from assemblies
- This helps because the ANIs were changing for each compilation.
Now the design time host wont' send anything back to VS if nothing changed
(at least for ANIs coming from disk).

#534
Made some reliability changes to design time host
- Made the processing loop continue until there's no
more messages. Previously, posting subsequent messages
while the processing lock was held would just noop leaving the chance
for work to stall. Checking for changes after processing fixes that.
- Moved the assembly writing to another method
Always print stack traces when showing errors
- We can't tell where errors occured so always show the stack trace
since it's better than hiding it.

#539
Reacting to System.IO.FileSystem package version change
Reacting to System.IO.FileSystem package version change
Reacting to System.IO.FileSystem package version change
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