Change refactor testing from demanding exact identity of outputs to asserting smallness of an array-wise relative error.
Change refactor testing from demanding exact identity of outputs to
asserting smallness of an array-wise relative error.

I chose the particular relative errors to allow the suite to still
pass when I manually change the compilation flag to -Ofast from -Og,
on my system.

This change impacts on the following items:

- Relative to Issue #6, the test suite now tolerates small intentional
  changes to the numerics, and even (in a crude way) measures what
  those changes are.  However, this is a regression in the sense that
  it is now awkward to check that a change that wasn't supposed to
  change the numerics indeed does not.

- Relative to Issue #29, I have manually confirmed that optimization
  settings are not, in fact, significantly changing the results, on
  this set of test examples, at this version of the code.  It would be
  nice to automate that confirmation (e.g., by running the examples
  both against -Og and -Ofast), but that would slow the test suite
  down while we compile MIM for every individual test, due to not
  having solved Issue #12 yet.

- Relative to Issue #27, we can now more easily check which cause(s)
  of the test suite non-portability is(are) present.

edoddridge/MIM,edoddridge/aronnax