Enforce invariant: mapGroup iterators all nonempty

Previously not all fixes in mapGroup were covered
Yes. I included a test that fails without this change.
On Oct 1, 2014 8:30 PM, "P. Oscar Boykin" <notifications@github.com> wrote:

> In scalding-core/src/main/scala/com/twitter/scalding/typed/Grouped.scala:
>
> > @@ -146,7 +150,7 @@ case class IdentityReduce[K, V1](
> >      UnsortedIdentityReduce(keyOrdering, mapped.filterKeys(fn), reducers)
> >
> >    override def mapGroup[V3](fn: (K, Iterator[V1]) => Iterator[V3]) =
> > -    IteratorMappedReduce(keyOrdering, mapped, fn, reducers)
> > +    IteratorMappedReduce(keyOrdering, mapped, Grouped.addEmptyGuard(fn), reducers)
>
> could these three really cause a problem? These are on Identity reduces,
> which mean the keys could not have been removed, I thought. Did you have a
> test that failed without them?
>
> --
> Reply to this email directly or view it on GitHub
> <https://github.com/twitter/scalding/pull/1072/files#r18317280>.
>