CPackWIX: refactor and cleanup

Extract addtional classes and functions which are getting unsightly large.
Use some of the coding conventions more consistently.
Add FindOpenCL module
FindQt4: prevent overlinking when using UseQt4.cmake.

Now it only links with the Qt libraries specified by the user,
instead of automatically including all dependencies.
Fixes #14750 and thanks to Orion Poplawski.
Utilities/Release: Do not upload doc staging tarball

Restrict the release upload globbing pattern to match the CMake version
so that "cmake-<v>*" files go but "cmake-<id>-docs.tar.gz" does not.
Add test for find_dependency macro.
CMake Nightly Date Stamp
FindGTest: Optionally detect sources automatically (#14775)

Teach GTEST_ADD_TESTS an "AUTO" option to read the source files from the
SOURCES target property of an executable.
Help: Add FindGTest-AUTO-SOURCES topic release notes
Help: Add FindHg-WC_INFO topic release notes
Help: Add ExternalProject-BUILD_ALWAYS topic release notes
VS: For Intel Fortran .vfproj put OBJECT libs in link line (#14777)

The Intel Fortran .vfproj format accepts the $(Configuration) placeholder
in the path to an input file but appears to consider it always out of
date.  Therefore adding OBJECT library objects as external object source
files causes the referencing binary to re-link on every build.  Work
around this problem by putting OBJECT library objects on the link line
as is done for VS < 8 already.
FindPkgConfig: Prefer PKG_CONFIG to find pkg-config (#13175)

If the environment variable PKG_CONFIG is set, use this as the
default pkg-config executable.
Utilities/Release: Update IBM AIX build machine access
Tests/RunCMake: Tell cmake not to report unused command-line options

On OS X we pass -DCMAKE_POLICY_DEFAULT_CMP0025=NEW to all tests.
Once tests start using cmake_minimum_required(VERSION 3.0) then
CMake will warn that CMAKE_POLICY_DEFAULT_CMP0025 is unused.
These warnings are not part of the expected test output and can
cause such tests to fail.  Pass --no-warn-unused-cli to each test
cmake invocation to tell it not to produce these warnings.
Watcom: Fix creation of DLLs without any exported symbols

Create each DLL import library by passing "option implib=..." to the
linker for its SHARED library.  This works even when there are no
symbols to be exported.  Leave the option out for MODULE libraries
because we do not need an import library for them.  For executables,
retain the separate invocation of wlib because we want an import
library only when the ENABLE_EXPORTS property is set, and in that
case the project should provide symbols.

Suggested-by: J Decker <d3ck0r@gmail.com>
CMake Nightly Date Stamp
FindRuby: Add support for Ruby 2.0 and 2.1

The most significant change since Ruby 1.9 is the changed path of
config.h, from RbConfig::CONFIG['rubyhdrdir'] to
RbConfig::CONFIG['rubyarchhdrdir'].
Help: Add FindRuby-2 topic release notes
Remove compatibility CTest code.
Help: Add release notes for topic 'add-FindOpenCL'