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.
Allow no-throw behavior when command-line parser sees an unexpected option
Add unit tests to verify no-throw behavior