Squashed 'System.Collections.Immutable/' changes from fdf779a..354550b

354550b Apply enum pattern to ImmutableList<T>
e0725a8 Apply enumeration enhancement to ImmutableSortedSet<T>
9de8a71 Fix handling of IDisposable enumerator structs.
4ab9d09 Remove erroneous use of GetEnumerable.
318c537 Slight syntax touch-ups in response to feedback.
9d9da9d Avoid boxing ImmutableHashSet<T>.Enumerator.
64b02cc Respond to code review feedback
d7ff8f2 ImmutableCollections: include the key in the "duplicate key" exception message
73911af Address feedback on previous commit
f5de8e4 Remove allocations in ImmutableArray.RemoveAll/ImmutableList.FindAll
c08bb6a Document required self=this coding pattern.
355ae3c Fixes thread-safety vulnerability in ImmutableArray<T>.
7c94702 Add more comments to thread-safety test.
0677f54 Add thread-safety test for ImmutableArray`1.Add
9bc86a0 Remove ImmutableArrayInterop and work around it
696c016 ImmutableArray<T>.Builder.Sort should not create Comparer instance if count<=1 Tweaking Sort(int index, int count, IComparer<T> comparer) to check for count instead of Count. Checking for count > 1 will ensure both of these i. The no. of elements intended to be sorted is > 1 ii. The underlying array contains > 1 elements
2fd8c8f Remove unused file: PinnedImmutableArrayTests.cs
83e08ac Remove commented out code (responding to PR feedback)
593aa54 Make immutable collection tests portable
4208d76 Remove AllowUnsafeBlocks as it's no longer needed
4421efc Remove several unnecessary comments
2bc8bad Addressed PR feedback from AArnott
6b843a5 Change SortedInt32KeyNode.height from Int32 to Byte.
6800376 Improve lookup perf on immutable dictionaries and sets
4deec2f Fixed wrong typo Automatically -> Atomically
f394997 Merge pull request #150 from sgtfrankieboy/master
d86567b Remove unnecessary allocations from Keys, Values, and ContainsValue members
8eda2e2 Reduce Node sizes by shrinking "height" from Int32 to Byte
f2db29a System.Collections.Immutable Typos
d66a149 Update ImmutableArray`1+Builder.cs
13f880c Sort methods on Array, List<T>, and other core collections accept null comparers. This is not the case for immutable collections, despite what the doc comments claim. This change fixes the inconsistency buy allowing null comparers being passed to Sort methods of the immutable collections.
e0b9fab Address CR feedback on previous commit
66ca7b8 Significant enumeration perf improvements for immutable lists, dictionaries, and sets
a4fd7b0 Remove import of System.Linq, reference namespace explicitly.
216e983 Call ImmutableList<T>.AddRange from ConvertAll and FindAll

git-subtree-dir: System.Collections.Immutable
git-subtree-split: 354550bb9e65b09686e0ed69771a21bc7be836ff
Merge commit 'fbb566497bf2af5348bf8a820889444914723ed3' into corefx-reference