Make "kpm restore" case-sensitive

- PackageRepository has different behaviors in different contexts
Add AnsiConsole to CommandLineUtils project
Public folder is not copied as a project file during "kpm pack"
Use 'Id' element in OData as accurate package Id and 'title' as fallback
Updating release NuGet.config
Updating dev NuGet.config
Specify language version explicitly when invoking Roslyn parser
Normalize path to output dir before "kpm pack"
Flow correct compilation options in Roslyn compiler to Roslyn parser
Use the same parseOptions for GetSyntaxTrees and for ApplyVersionInfo
Added frameworkAssemblies support
- The frameworkAssemblies section is specific to a target framework
- Refactored BuildContext to call into the ProjectReferenceDependencyProvider.
This means that only a single place actually uses the project class directly
(which is nice).
- GetLibraryDescription now takes a Library instead of name and version
(we may need to revisit this and create a different poco). When @lodejard finishes
dependency types we'll see how this ends up
- Preserve the backwards compatibility of declaring frameworkAssemblies in
dependencies temporarily
- Added tests for parsing frameworkAssemblies

#640
#619
Assume any reference resolved by the framework resolver is a framework ref
Skip framework assemblies for aspnetcore50
Fixup the dependency version when resolving GAC references from the project.
Remove wildcard from the global.json lookup
Don't close the stream when caching metadata references
- Keep the stream open until we dispose the metadata itself
- Change the cache to dispose entries if the old value is disposable
Removing dependencies from shared project
Revert "Removing dependencies from shared project"

This reverts commit 6c29dabe3656b6f3a9fafa279355eb3b742ede61.
Ensure outputDir is never null for packing
Init Win7PlusCoreSystem