CRUNCH-607 Allow collection reuse in MemPipeline

Prevent SingleUseIterable from throwing an IllegalArgumentException
when legal reuse of PGroupedCollections are done with the
MemPipeline.

This simply prevents materializing the transformed contents of
a MemCollection until it is iterated over.
3 files changed