Improve lookup perf on immutable dictionaries and sets

This commit creates a specialized version of ImmutableSortedDictionary`2.Node that setsTKey as Int32.  This allows the implementation, which is used by both ImmutableDictionary`2 and ImmutableHashSet`1, to avoid multiple interface calls per node during lookups, doing the Int32 comparisons directly rather than going through Comparer<int>.Default, which in turn goes through Int32's IComparable<T>.CompareTo implementation.
Change SortedInt32KeyNode.height from Int32 to Byte.

This decreases the size of the SortedInt32KeyNode on both 32-bit and 64-bit by ~10%.
Addressed PR feedback from AArnott

- Changed height calculations to be checked, to help catch any issues with balancing logic
- Removed unnecessary Requires.NotNullAllowStructs calls for keys we know to be structs
- Changed a couple of "left == null" checks to be the equivalent IsEmpty, for readability
Remove several unnecessary comments
Merge pull request #164 from stephentoub/immut_compare_perf

Improve lookup perf on immutable dictionaries and sets
Update buildtools to version 1.0.14-prerelease
Merge pull request #182 from FiveTimesTheFun/buildtools-14

Update buildtools to version 1.0.14-prerelease
Remove AllowUnsafeBlocks as it's no longer needed
Make immutable collection tests portable
Remove commented out code (responding to PR feedback)
Merge pull request #183 from nguerrera/portable-immutable-tests

Make immutable collection tests portable
Remove unused file: PinnedImmutableArrayTests.cs

The PinnedImmutableArray class no longer exists, but the tests for it
sitting in the tree without being pulled in to the .csproj.
Merge pull request #184 from nguerrera/remove-unused-immutable-file

Remove unused file: PinnedImmutableArrayTests.cs
Fix race condition in metadata reader

See http://roslyn.codeplex.com/workitem/299

In the case where a PEReader was backed by a memory-mapped file,
concurrent calls to PEReader.GetMetadataReader were unreliable.
They  led to concurrent calls to MemoryMappedFile.CreateFromFile
on the  same FileStream, which is not safe.

The fix is to use the same streamGuard lock used elsewhere to
avoid concurrent use of the stream.
Fix spelling error in rarely used pre-release API

MetadataTokens.ExportedTypeHandle was misspelled with two o's.

This is of course a breaking change, but this API is still in
pre-release. Furthermore, there are no usages at all of this API
in any partner code that I can find and it is unlikely to be used
yet elsewhere. The API is in the Ecma335 sub-namespace for getting
handles from raw metadata tokens, but most consumers would find
ExportedTypes via the main token-agnostic API.
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
Initial Commit of System.Threading.Tasks.Dataflow
Update README.md
Remove unused variables
Add clarifying comment (responding to PR feedback)