Improve floating point comparisons in unit tests

Improve basic floating point comparison support:
- Replace EXPECT_NEAR_TOL with a more flexible alternative that allows
  specifying various tolerances.
- Some Doxygen improvements in testasserts.h.

Additionally, make the reference data framework use the new approach:
- Add a tolerance setting to the reference data framework, and make the
  default tolerance a lot stricter.
- Store the reference data with enough precision to allow lossless
  roundtrips.  This makes them more difficult to inspect visually with
  the XSLT files, but that can be addressed separately.
- Run FFT tests with GMX_FFT_FLAG_CONSERVATIVE to make the results with
  FFTW have less variance.  The 3D FFT tests were already using this,
  but others weren't.  Set the tolerance for the FFT tests based on a
  bit of testing of what works.  It should now pass even without the
  conservative flag, at least most of the time.  The tolerance is still
  lower than what it was earlier even for single, and a lot stricter for
  double.
- Regenerated all reference values from a double-precision build.
  For the FFT tests, used fftpack without optimizations.

Change-Id: I187dd9be20fd17cc8b3e779dcd9dbad34043bb00