Fix up Map/Reduce input API issues - #120

Fix up the API of the two input classes which were not nice to use. Also
fix up the serialisation problems that were found while doing this work.
The class should be easier to use now and be more in line with what we do
elsewhere in the library.
Merge pull request #121 from DistributedNonsense/feature/MRInputUpdate

Fix up Map/Reduce input API issues - #120