Rename MpiMapReduce to MpiParallelTask.
Add a task argument, and a few tests which don't work yet.
Change the interface of MpiParallelTask to use integers

The iterator interface requires the implementation to dereference
each iterator between begin and end, serialize each to an integer,
and send each via MPI. This is necessary for container-backed iterators,
but it is unnecessary for generative iterators like the one in this case.

Instead, accept integers directly, and send only those, so make it clear
that this algorithm is not designed to work with iterators in general.