Catch too many or too few outputs with mapredtest.

mapredtest was only iterating over the actual output, silently ignoring any
further expected output.  In the extreme case, a mapper or reducer that output
nothing would always pass.  The error when a map/reduce did not produce enough
output was also not helpful.  This patch factors iterator comparison into a
function to reduce duplicated code, and adds and corrects tests.