ENH: Only build tests for modules explicitly enabled.

If BUILD_DEFAULT_MODULES is OFF only the tests for the Modules explicitly
enabled are build to reduce build time.

Tests for modules requested by the ITKGroup_ variable are not enabled because
even for the Core Group, the test dependencies greatly increase the size of
the dependency tree.

For similar reasons, by default tests for only modules that are explicitly
enabled are built.  An option ITK_BUILD_ALL_MODULES_FOR_TESTS is added that,
when turned on, will also build all the tests of dependencies.

Change-Id: If02bde13f7e3cc47604a63ae7eec7bcfed071e5a
COMP: Except Git's status messages from CTest reporting

Git prints some of its normal status messages to stderr. This output can
be mistaken for warnings by CTest, particularly if the target Git
repository uses the word "warning" (for instance in a branch name).

This modifies the regex CTEST_CUSTOM_WARNING_EXCEPTION to also catch
and except the messages printed to stderr by "git clone" and
"git checkout" (to a detached HEAD), which occur when using Git to
fetch an ExternalModule.

A patch is also being submitted upstream to CMake to fix the same issue.

Change-Id: I7208bd811dd3a6c4f06a10ced5ef2caecaa30452
Merge topic 'DetachedHEAD-Warning2'

71d18597 COMP: Except Git's status messages from CTest reporting
BUG: Fixed Affine test 32bits. Precision checks.

The testValue, testVector and testMatrix routines are now modified
to take advantage for the method:

         itk::Math::FloatAlmostEqual( v1, v2, maxUlps )

The parameter maxUlps has been adjusted to the level of precision required for
every intermediate test, and to the lower bound that still lets the tests pass
on both 64bits and 32bits. The default value of maxUlps has been set to 4, to
make it consistent with the FloatAlmostEqual() implementation default value.

This has only been tested on Linux 64/32. Additional fine tunning might be needed
for other platforms.

Change-Id: Ie4adfa0ae1d5eae3bcdf75d0e41f0196f6898cfa
ENH: Print Object name for observers of objects

Giving each command a name can aid in debugging.

Change-Id: If564061e847e5f490e49e7c6638258af3ddae450
BUG: Remove unused forward declarations in RegistrationMethodsv4.

Change-Id: Ia909152c893f489672cfb689c577139fa21ff148
Merge topic 'FixAffineTransform32bitsVs64bits2'

504ea57e BUG: Fixed Affine test 32bits. Precision checks.
Merge topic 'module-test2'

6f84dd4e ENH: Only build tests for modules explicitly enabled.
Merge topic 'reg-clean'

bc3c120d BUG: Remove unused forward declarations in RegistrationMethodsv4.
Merge topic 'PrintCommandObjectName'

a77f16fb ENH: Print Object name for observers of objects