CTest: fix usage of memory checker with spaces in path

The filename was escaped in cmCTestMemCheckHandler::InitializeMemoryChecking()
and again before it was written to output in
cmCTestRunTest::ComputeArguments().

Once someone uses e.g. a valgrind path with spaces this leads to double escaping
making the memory checker fail completely because of the invalid path.
CTest: fix pre and post test commands with spaces

If the pre or post memcheck or test commands have spaces in the path these
were never escaped, leading to broken commands. This was not covered in the
test suite so it went unnoticed.
CTest: add tests that simulate memcheck runs
CTest: improve memory checker type detection

If the checker was explicitely set with a "TypeCommand" variable (e.g.
ValgrindCommand) then we now just believe that this is valgrind, even if
nothing in the path matches "valgrind". Only when "MemoryCheckCommand" was used
we still scan the path to find out what checker we have.
CTest: add a test for CTEST_CUSTOM_MEMCHECK_IGNORE
CTest: add a check with a quoted memory checker
FortranCInterface: Pass all flags to VERIFY project (#13579)

Teach FortranCInterface_VERIFY to build the test project in a specific
configuration and pass all flags for that configuration.  This ensures
that any modifications made by the user or project to the flag are used in
the test project consistently.
Fix regression: write compile definitions if any

In 0ff4e3f0b88885eafab0693fdf03b44c7a5f9d0c cdefs
was changed from a pointer to a vector.
Attempt to fix the compile of cmake on Sun CC.

The problem may be that the reportError method is static, so make
it non-static on that platform.
CPACK_XX_ON_ABSOLUTE_INSTALL_DESTINATION is now properly checked for ON/OFF

This fixes bug #0013490
Document CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY and fix some typo.
Make CPACK_SET_DESTDIR work with archive generator + component-based packaging

Fix bug #13004. The patch is from Stanislaw Szymczyk.
Automoc: fix #13572: issue with symbolic links

Now automoc always uses GetRealPath() so symbolic links are always
resolved and it doesn't end up with twice the same file, once with the real
path and once with the symlinked path in some setups where the source dir
can be accessed directly and via a symlink

Alex
Find PostgreSQL headers on Debian

Fixes Debian bug 665721 (http://bugs.debian.org/665721)
NSIS: Fix incorrect uninstall registry key name (#13578)

Thanks to Alexander for the bug report.
CTest: Ensure CTEST_USE_LAUNCHERS behaves nicely in Superbuild setup

When building a project relying on External projects, the launchers were
not used in subprojects built without testing enabled. This was preventing
errors and warnings associated with these subprojects from being
reported on the dashboard.

This commit allows enabling the launchers independently of the value of
"BUILD_TESTING" using one of these two approaches:

1) By setting both CTEST_USE_LAUNCHERS and the env variable
"CTEST_USE_LAUNCHERS_DEFAULT" to 1 in the ctest dashboard driver scripts.

2) By enabling the variable CTEST_USE_LAUNCHERS in the ctest dashboard
driver script and also by ensuring every external project passes the option
-DCMAKE_PROJECT_<projectname>_INCLUDE:FILEPATH=${CMAKE_ROOT}/Modules/CTestUseLaunchers.cmake
GenEx: Parse colon after arguments separator colon specially.

The rationale is similar to that in commit b3d8f5da (GenEx: Parse comma
after colon tokens specially, 2012-10-04), in that colon tokens should
not be parsed as identifier-argument delimiters after the first colon.
GenEx: Test the use of generator expressions to generate lists.

We can't test this in the GeneratorExpression unit test because
the ';' chars are processed specically by the CMake function argument
parser.
GenEx: Fix termination bugs in generator expression parser.

Content which is incomplete as a generator expression could cause
segfaults by advancing an iterator beyond end() and dereferencing
it. Such incomplete generator expressions  should be treated as
plain text instead.
GenEx: Break if there are no more commas in the container

This was causing an assert on Windows which has safety features for
iterating past the end of the container.