Test outputs and allow for relative paths

Testing output currently compares the temporary output file with the expected
output file character-by-character and reports if there are any mismatches,
or if one file ends before the other.  In the future, further customization
ought to be available, including ignoring whitespace, which should be enabled
by default.  These tests should maybe be put into a class to allow for ease
of setting such options (otherwise a lot of parameters may have to be passed
around).
Allowing for relative paths currently works only for input and output files,
but in the future ought also to work with program under test.