Distributed transform reduce

This adds the segmented version of `parallel::transform_reduce`. It also extends zip_iterator to support segmented iterators.