Enforce invariant: mapGroup iterators all nonempty

Previously not all fixes in mapGroup were covered
I don't think this works actually. Consider the case where localRed(k, iter) == Iterator.empty, but fn(k, _) == Iterator(k). The newReduce will not behave as expected. I think your previous patch is correct: If any function maps to Iterator.empty, that is the end of the line.