Significant enumeration perf improvements for immutable lists, dictionaries, and sets

These are the approximate improvements I see on my machine when enumerating various
immutable collection types of length 0, 1, and 1000.  The numbers are old
time divided by new time...

ImmutableList:
    Empty - 1.6x
    Single element - 2.2x
    1000 elements - 2.9x

ImmutableHashSet:
    Empty - 1.3x
    Single element - 1.7x
    1000 elements - 1.6x

ImmutableSortedSet:
    Empty - 1.9x
    Single element - 2.5x
    1000 elements - 2.7x

ImmutableDictionary:
    Empty - 1.2x
    Single element - 1.6x
    1000 elements - 1.4x

ImmutableSortedDictionary:
    Empty - 2x
    Single element - 2.5x
    1000 elements - 2.75x
Address CR feedback on previous commit
Merge pull request #135 from stephentoub/immutable_enum_perf

Perf improvements for enumerating immutable collections