Alter hash_diff to accept parameters in any order

Rename the variables to be more sensible for that, and rewrite current
functions that use it appropriately.
First --diff try
Restore modes.
Tests: Test restoring modes.
metamonger: Fix perlcritic warnings

Started to carry $error_count around. This both makes perlcritic
shut up and allows us to print the total error count at the end,
if any.
Merge remote-tracking branch 'errietta/feature--restore--mode'
Merge remote-tracking branch 'errietta/feature--diff-2'
Merge branch 'fix--perlcritic'

Conflicts:
	metamonger
metamonger: Minor whitespace fix