Optimized ImmutableList.AddRange to avoid Add()

Optimized AddRange so it doesn't use Add, but instead pre-sizes an array
to copy from. Optimal code paths for both ICollection, ICollection(Of T)
and IEnumerable.

Also added tests for AddRange