Call ImmutableList<T>.AddRange from ConvertAll and FindAll

Replace any remaining calls to ImmutableList<T>+Node.Add and
ImmutableList<T>+Builder.Add from within a loop to calls to the
equivalent AddRange method
Remove import of System.Linq, reference namespace explicitly.
Formalized coding style guidelines.

It is possible to capture most of the coding style guidelines in a corefx.vssettings VS 2013 settings file.

Examples of settings that were not captured: avoiding double free lines, or spurious blank spaces.
Product sources build against MyGet delivered framework contracts.

Previously, the product sources have been compiling against the
reference assemblies provided by the environment.  These were the
portable targeting pack reference assemblies.

This change adds package dependencies from each of our product
assemblies to .NET Core contract assemblies on a new MyGet feed at
https://www.myget.org/F/dotnet-corefx.  This change also modifies the
assembly projects to not implicitly reference the reference assemblies
using the ImplicitlyExpandTargetFramework property. Finally, this
change explicitly references framework contract assemblies in their
location relative to the package root for downloaded nuget
dependencies.
Remove allocations in ImmutableArray.RemoveAll/ImmutableList.FindAll

ImmutableArray<T>.RemoveAll and ImmutableList<T>.FindAll both unconditionally allocate an object (a list or a builder) to store the results of iterating over the collection and running the supplied predicate.  However, if the predicate never returns true, these objects aren't needed.  This commit simply changes the allocation of that object to be lazy such that it's only allocated if needed.
Merge pull request #207 from stephentoub/immut_alloc_findallremoveall

Remove allocations in ImmutableArray.RemoveAll/ImmutableList.FindAll
Revert change in commit 03e79fe to Immutable and MetadataReader

Revert the change "Product sources build against MyGet delivered
framework contracts" from System.Collections.Immutable and
System.Reflection.Metadata while keeping the changes for the rest
of the assemblies.  Immutable and MetadataReader are previously
released targeting portable targeting packs, and this change would
narrow which platforms they would run on.
Address feedback on previous commit

Merge branch 'master' into immutablelist-addrange-refactor

Conflicts:
	src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableList`1.cs
Merge pull request #178 from mtrofin/vssettings

Formalized coding style guidelines
Update framework references for product, add local refs for tests

Update the framework references for product assemblies to the correct
(updated) folder structure of the framework *.nupkg files (with a +
separating platforms rather than a -), and also add references to
nuget delivered .NET Core framework contracts to test assemblies.
Fix XPath.XmlDocument concurrency problem
Fix SIMD test and disable XML tests on issue corefx/208

https://github.com/dotnet/corefx/issues/208 tracks running tests
against the implementation assemblies for .NET Core instead of the
desktop assemblies.  Disable some tests from running because they
compile against a new overload in the System.Runtime contract
(System.String System.String.Format(System.IFormatProvider,
System.String, System.Object) that does not exist in the desktop
implementation assembly (which only has a params overload).
Merge pull request #209 from krwq/XmlDocFix

Fix XPath.XmlDocument concurrency problem and memory leak
Merge branch 'packageref'

Conflicts:
	src/System.Xml.XPath.XDocument/tests/System.Xml.XPath.XDocument.Tests.csproj
	src/System.Xml.XPath.XmlDocument/tests/System.Xml.XPath.XmlDocument.Tests.csproj
	src/System.Xml.XPath/tests/System.Xml.XPath.Tests.csproj
Merge pull request #112 from PatrickMcDonald/immutablelist-addrange-refactor

Call ImmutableList<T>.AddRange from ConvertAll and FindAll
ImmutableCollections: include the key in the "duplicate key" exception message

This makes the exception message much more useful in log files.
Disable the NuGet cache when installing Microsoft.DotNet.BuildTools

Fix #206
Add outer-loop tests support
Merge pull request #212 from krwq/OuterLoopTests

Add outer-loop tests support
Fix AppVeyor build script to correctly return error code

The script chained the execution of VsDevCmd.bat (aka the "Developer
Command Prompt") with build.cmd which seems to confuse AppVeyor
into not recognizing a non-zero exit code (i.e. when a test fails)
and incorrectly marking the build as green.

Invoking VsDevCmd.bat and build.cmd in two separate steps fixes this.

Fixes #214