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.
Turn on _enableOffering in TryReceiveAll as in TryReceive

In SourceCore TryReceive turns on enableOffering to offer the next messages to any target (if there is one) while TryReceiveAll didn't.

Fix #202
Merge branch 'master' into BufferBlockBug
Set _enableOffering unconditionaly
Enhance TestBufferBlockOutputAvailableAsyncAfterTryReceiveAll by testing multiple times concurrently
Use invariant culture for converting XPath objects in tests

Before, a call to Convert.ChangeType() in the XPath tests used the current culture,
which resulted in test failures on cultures like de-AT and on Windows 10.
Instead, we now use the invariant culture when converting objects to fix this.

Fixes #136
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 #205 from akoeplinger/fix-xpath-tests

Use invariant culture for converting XPath objects in tests
Merge pull request #203 from I3arnon/BufferBlockBug

Turn on _enableOffering in TryReceiveAll as in TryReceive
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