ExternalProject: Always add a command to a step

Some generators (i.e. Xcode) will not generate a file level target if
no command is set, and therefore the dependencies on this target will
be broken.
This patch sets an empty echo command that does nothing to avoid this
issue.
ExternalProject: Add UPDATE_DISCONNECTED option

If UPDATE_DISCONNECTED is set, the update step is not executed
automatically when building the main target. The update step can still
be added as a step target and called manually. This is useful if you
want to allow to build the project when you are disconnected from the
network (you might still need the network for the download step).
This is disabled by default.

The directory property EP_UPDATE_DISCONNECTED can be used to change
the default value for all the external projects in the current
directory and its subdirectories.
ExternalProject: Add unit tests for UPDATE_DISCONNECTED
Suppress deprecation warnings for GetVersionEx

Visual Studio 12 (2013) deprecated GetVersionEx:

  warning C4996: 'GetVersionExW': was declared deprecated

in favor of either "versionhelpers.h" or VerifyVersionInfo, neither of
which exist in some of the older compilers we support.  Rather than
try to port conditionally to VerifyVersionInfo, simply suppress the
warning for now.
curl: Disable warnings to avoid changing 3rd party code

Tell MSVC to use its lowest warning level inside curl sources.
KWSys SystemInformation: Check for _SC_AIX_REALMEM before using it

Add a check for supported flag when querying for system memory on
AIX 5.1.
FindIntl: New module to find Gettext libintl

Add support for Sun/Uniforum/GNU gettext libintl.  This belongs in CMake
rather than upstream because:

* There are multiple upstreams (Sun, GNU).

* It may or may not be in the glibc C library depending
  upon the platform and build options used.

Although we already have a FindGettext module, that is for the tools.
This module is for the library, and is independent because it's
perfectly OK to use libintl without the gettext tools (and vice versa),
and they might not all be found.  Add cross references between the two
modules in notes to make the relationship clearer.
Refactor and seperate search path construction for find commands

Prior to this commit, the set of search paths to traverse for find commands
was incrementally constructed.  This change allows each group of paths, i.e.
CMakeVariablePaths, UserHintsPaths, SystemEnvironmentPaths, etc. to be
constructed and manipulated independently, and then all combined togethor.
Encapsulate search path manipulation functions into a seperate class.

The functions for adding the various different types of paths have been
factored out into a new class, cmSearchPath.  It is to be used as a helper
container class for the various find_* commands.
Genex: Fix whitespace issue.
Features: Split the Clang testable features to a separate file.

These tests can be shared with the AppleClang compile feature tests.
Use containers of labeled search paths instead of individual members

Manage classes of search paths in labeled containers.  This removes the
need to have a seperate member variable for each type of search path, but
also allows path types to be grouped togethor in various different ways
and manipulated as subsets of the full set of search paths.
Help: Link to GNUInstallDirs from CMAKE_INSTALL_PREFIX (#15246)

Add a note to the CMAKE_INSTALL_PREFIX documentation that refers readers
to the GNUInstallDirs module to make the latter easier to discover.
cmake-mode.el: syntax of '_' should be treated as symbol

Word commands, such as foward-word(M-f), backward-kill-word(M-backspace),
don't work well like other major-modes if syntax of '_' is treated as "word".

Tested-by: Guillaume Papin <guillaume.papin@parrot.com>
KWSys 2014-11-12 (5843f590)

Extract upstream KWSys using the following shell commands.

$ git archive --prefix=upstream-kwsys/ 5843f590 | tar x
$ git shortlog --no-merges --abbrev=8 --format='%h %s' 88c8cc7f..5843f590
Ben Boeckel (1):
      5843f590 cmake: remove arguments to endfoo and else commands

Ådne Hovda (1):
      2e4a0ff0 SystemInformation: Check for _SC_AIX_REALMEM before using it

Change-Id: Ifabcd50984d8b24f6034a17d729e255dfc591bbc
Merge branch 'upstream-kwsys' into update-kwsys
Utilities/Sphinx: Add index entries for cross-references

Add a document transform to insert index and target nodes just before
any CMake domain cross-reference node.  This will make references to
CMake domain objects appear in the index.  Also add a comment explaining
why it cannot be done in a result_nodes method of the CMakeXRefRole.
Merge branch 'doc-index-xrefs' into release
Merge branch 'doc-CMAKE_INSTALL_PREFIX-link-GNUInstallDirs' into release
Merge branch 'kwsys-SystemInformation-AIX-_SC_AIX_REALMEM' into release