Avoid boxing ImmutableHashSet<T>.Enumerator

This introduces a pattern that can be applied anywhere to conveniently avoid boxing one's own Enumerator struct without duplicating the body of foreach loops everywhere.

Fixes #211 

If folks like this, I can add a commit that applies the pattern to all the other immutable collection types.
Such a constructor could still only be called from the `else` block above. So I don't see what it would buy you. And this way, the constructor overloads are nicely parallel: they both take an *enumerator* rather than an enumerable.