Rewrite the testing macros

Things this commit does in the process of rewriting the testing
infrastructure:

  - argument parsing and per-file option handling has been factored out
    into separate functions to avoid duplication;
  - macros have been replaced with functions;
  - all languages use the same structure (add the tests, then build the
    executable);
  - -E## support has been removed; use ${testname}_ARGS instead;
  - some style cleanups;
  - replace directory properties with variables so that multiple test
    sets may be made at one time;
  - set test labels from the TEST_LABELS module.cmake option.

Change-Id: Ic75023208725e5c09043feabdf758014b66fa26e
Update the Cxx test call sites

Change-Id: I10a54acbd076e055d8071414f2fff1ebafe1653d
Update the MPI test call sites

Change-Id: If92879d67d11dfc5965ef42a8c173539801b3c98
Update the Python test call sites

Change-Id: I5f19b101063e1a25d4f5db5c4356ce5efffbd90d
Update Tcl test call sites

Change-Id: I6546ff164baca86afb1a73b896dd10b1bce2c005
Minor CMake logic simplification

Change-Id: I227cffd4d212d27030b887bb679ccfde3607320a
Copy Statistics tests to StatisticsGnuR

Managing separate files with the new functions is really messy.

Change-Id: Id9cbc2a0de08a4ddc8760d1f924cbbf5af1af3df
Infovis: Add an include for newer Boost versions

Change-Id: I1ae50e6d904856aa67364c955f15c7a016a417e1
ParallelMPI: Add missing return statement

Change-Id: Ie23821e2a0c527637a7b863c0edad752374dd5a3
Allow arguments to be passed directly to Python

Change-Id: I3c8cb3d929d5b9f2eb54c9f2742eb079ca44c6f8
Skip adding the executable if no tests are created

Change-Id: Iaa8eee6b01c96aaddd27df64ad6e5c4674dd3597
Allow for overriding the data directory in tests

Change-Id: I0eeb38eaf23d77240c5bcb136e164b0b9ef127e4
Allow overriding the baseline directory in tests

Change-Id: I3171a120a8c5c9ce501c612c58890d7fd98d62be
Build the VTK test data directory properly

If VTK is not the top level directory, an extra set of path components
will be injected between ExternalData and Testing. Compute this path and
add it to the expected output directory.

Change-Id: I13dc4b412f6a785f57fd99896b37475510a9833e
Support custom baselines in tests

Change-Id: I0a5df3d25ec33ffc272e33a032a19af38689d938
Store VTK's ExternalData in its source directory

If a parent project wants to use ExternalData (say…ParaView), VTK stores
its data in ParaView's source tree. Store it in VTK's instead.

Change-Id: I7b9ab18159338d6d56d406de40d78e6f66405900
Support VTKExternalData_OBJECT_STORES as well

Allows for VTK-specific object sotres versus generic ExternalData object
stores.

Change-Id: I935bf761e5509a330303e9abe0f278bfcb750b42
Support custom ExternalData targets for tests

Change-Id: Ia122edc87d3cab238e9bf37b66a66e1631596be4
Support flags to tests common at the module level

Change-Id: I89143a7c876ba36e9d7c3a72931fe3013ceecfb6
Support JUST_VALID for Python tests

This skips the rtImage.py trampoline which is unnecessary for some tests
(ParaView).

Change-Id: I167ba77a2784ee3c63727399136f393a21cc25f5