Typedpipe partition

Addresses https://github.com/twitter/scalding/issues/986
I think it would be partition when you want to split your 'dataflow' into two, groupBy when you want to create a grouping in the same dataflow?

Anything else that comes to mind? I'm still partially hung over in the fields API world so might be missing something.

(TypedPipe.groupBy does not exactly match scala Iterable.groupBy, gives you a `Grouped` and not a `Map[K, TypedPipe[T]`. If that were the case, then partition would be the same as groupBy on a boolean which gives you `(TypedPipe[T], TypedPipe[T])` instead of a `Map[Boolean, TypedPipe[T]]`.)