ExternalProject: Fix download retry logic

Do not check file's hash in download script.  If hash will not match
command ``file(DOWNLOAD ...)`` will fail with FATAL_ERROR, ``cmake -P``
will exit with unsuccessful code, and the build will stop.  Leave hash
checking to the existing implementation in the verify step.
ExternalProject: Fix CMP0054 warning in _ep_parse_arguments

Fix the CMP0054 warning:

 CMake Warning (dev) at .../Modules/ExternalProject.cmake:242 (if):
   Policy CMP0054 is not set: Only interpret if() arguments as variables or
   keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
   details.  Use the cmake_policy command to set the policy and suppress this
   warning.

   Quoted keywords like "COMMAND" will no longer be interpreted as keywords
   when the policy is set to NEW.  Since the policy is not set the OLD
   behavior will be used.
 Call Stack (most recent call first):
   .../Modules/ExternalProject.cmake:1938 (_ep_parse_arguments)
   CMakeLists.txt:5 (ExternalProject_Add)

by avoiding a reference to "${key}" or "COMMAND" in quotes.
CheckPrototypeDefinition: Avoid if() auto-dereference

Convert from the old if(MATCHES) hack to if(DEFINED) to check whether
the result variable is already set.
Tests: Fix CMP0054 warnings

Hack the CMP0054 warning locally to be an error and run the test suite.
Resolve CMP0054 in Tests/* code as appropriate for each case.
QtAutogen: Add source files to target when only AUTORCC is used.

Add missing entry to if condition.
Clang: Don't overwrite c++11 compile option value with c++14 flag.
Clang: Enable c++14 dialect flag with Clang 3.5.
Remove const char string comparison helper.

It is now unused.
Simplify use of binary_search.

A local string was created when dir was a const char*. Now dir is a
std::string already so the dirString is vestigal.
QtAutogen: Process all ui files in a source file (#14981).

Use a vector to store a list of matched ui_ includes, instead of
overwriting the previous match.
FindOpenSceneGraph: Do not add unfound OSG libs if not required
FindProtobuf: Make outputs depend on protoc executable

After updating from Protocol Buffers 2.5.0 to 2.6.0 compilation of the
generated source failed: "This file was generated by an older version of
protoc which is incompatible with your Protocol Buffer headers. Please
regenerate this file with a newer version of protoc.".

Turns out the source and headers generated by way of
FindProtobuf.cmake:PROTOBUF_GENERATE_CPP aren't updated. Adding a
dependency on the compiler executable fixes this issue.
enable_language: Fix error messages on missing modules (#15155)

In cmGlobalGenerator::EnableLanguage, fix error messages for missing
module files to actually name the missing module instead of using the
empty string returned by GetModulesFile.
FindGettext: Fix name of GETTEXT_PROCESS_POT_FILE in docs (#15162)

Rename GETTEXT_PROCESS_POT to GETTEXT_PROCESS_POT_FILE.

Patch-by: maahnat@gmail.com
Help: Add Cross Compiling subsections in cmake-toolchains.7 manual

Organize the "Cross Compiling" section into subsections by platform.
This will make it easier to add more subsections for more platforms.
Help: Add Windows CE cross-compiling to cmake-toolchains.7 manual
Help: Add Windows Phone/Store cross-compiling to cmake-toolchains.7

Show simple example toolchain files for each.
VS: Add Certificates to .vcxproj files

After certificates were moved into their own category in
cmGeneratorTarget, that category was not added for output by the VS 10
generator.  Add it now.
CPackWiX: Teach WiX installers to remember the install location for upgrades
Ninja: Prevent compilers to be silently modified

Unlike with Unix Makefiles generator modifying compiler paths was not
protected with Ninja generator.  It was possible to modify them in the
cache without the expected effect on the generated solution.  Also
activate corresponding tests with Ninja.