Help: Format project command and variable documentation

Also add document for CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE variable.
project: Add optional LANGUAGES keyword

Teach the project() command to recognize an optional "LANGUAGES"
keyword after the project name and prior to the list of languages.
Do not allow multiple copies of the keyword.  If the keyword is
specified and no languages are listed, imply NONE.
project: Manage VERSION variables

Teach the project() command to set variables

  {PROJECT,<PROJECT-NAME>}_VERSION{,_MAJOR,_MINOR,_PATCH,_TWEAK}

holding the project version number and its components.  Add project()
command option "VERSION" to specify the version explicitly, and default
to the empty string when it is not given.

Since this clears variables when no VERSION is given, this may change
behavior for existing projects that set the version variables themselves
prior to calling project().  Add policy CMP0048 for compatibility.

Suggested-by: Alex Neundorf <neundorf@kde.org>
write_basic_package_version_file: use PROJECT_VERSION

In the write_basic_package_version_file(), the VERSION argument
is now optional. If none is given, it falls back to ${PROJECT_VERSION}.

Alex
Utilities/Release: Fix newlines on dash2win64 cygwin

Tell Git not to perform newline conversion by configuring
'core.autocrlf' to 'false'.  Cygwin wants newlines like UNIX.
Utilities/Release: Generate docs on dash2win64 cygwin

Configure the build on dash2win64 cygwin to run Sphinx and generate our
documentation.
Utilities/Release: Fix for spaces in host path

Quote paths in the generated shell scripts so they work with spaces.
Utilities/Release: Pass pre-built docs tarball

Avoid requiring all build machines for the upstream packaging process to
have Python and Sphinx installed.  Instead create a way to build the
documentation once on the host machine and copy it to each build machine
as a tarball with content to include in the installation tree for
packaging.
cmake-mode.el: Clean up cmake-command-run and add buffername argument
cmake-mode.el: Add auto-completion to cmake-help-command
Update README and add guidelines for CONTRIBUTING

Rename 'Readme.txt' to 'README.rst', format the documentation as
reStructuredText, and modernize the content.  Also add a new
'CONTRIBUTING.rst' explaining the preferred entry path for new
contributors.
FindQt4: Make AUTOMOC work regardless which order Qt 4/5 is found.

Commit 321e348e (QtAutogen: Use Qt 4 IMPORTED targets to find
executable locations., 2014-01-24) attempted to fix this problem,
but only solved it for a particular ordering of find_package for
Qt 4 and Qt 5.

Add a test to ensure that it works with both orderings.
Find{Java,JNI}: Use ENV{JAVA_HOME} first when set

Use list(APPEND) instead of set() to append to lists.
When ENV{JAVA_HOME} is set explicitly place values based
on it at the front their lists.
Find{Java,JNI}: Consider JAVA_HOME before ENV{JAVA_HOME}

Add a helper module CMakeFindJavaCommon shared between FindJava
and FindJNI to select a JAVA_HOME value.  Prefer a CMake variable
or cache entry first, then an environment variable.
FindJNI: Overhaul finding JDK libraries and headers on OS X

Drop the hard-coded framework paths and "-framework JavaJM" on APPLE.

Save and restore the value of CMAKE_FIND_FRAMEWORK.  Use its value to
choose and order between a normal search for jvm&jawt and a framework
search for JavaVM.  When JAVA_HOME is set explicitly by the user then
force a normal search by setting CMAKE_FIND_FRAMEWORK to NEVER.  Once
the library is found, set CMAKE_FIND_FRAMEWORK to help find_path locate
the matching headers (framework v. normal).
Find{Java,JNI}: Use /usr/libexec/java_home on OS X

If no JAVA_HOME or ENV{JAVA_HOME} is set then try running this
tool to get the system default Java home.

Suggested-by: Larry Shaffer <larrys@dakotacarto.com>
FindCUDA: Fix literal block formatting

Fix locations of '::' manually to group literal blocks as desired.
VisibilityInlinesHidden: only apply -fvisibility-inlines-hidden to C++ sources
cmMakefile: Fix minor indentation inconsistency.
cmMakefile: Return containers by const reference.

They are not implicitly shared.