Build CMake with most-recent available language dialect.

When CMake is built with CMake 3.1 or later, appropriate -std=
options will be added for GNU and Clang compilers while building
C and CXX code.

This allows taking advantage of 'hidden' language features such
as move-constructors, and allows the standard library to enable
the use of more-advanced features too, where available.

This does not change CMake host compiler requirements.
WCDH: Make it possible to generate multiple files.

Extend the write_compiler_detection_header interface to allow
specifying a location for supplementary files, and getting the
list of resulting files as a variable.
WCDH: Make the header -Wundef safe for the C language.

The __STDC_VERSION__ macro may be defined or not depending on the
implementation dialect of C.  Test that it is defined before testing
its value.

The CXX tests do not need such a change because they define __cplusplus
in all dialects.
ccmake: Add CMAKE_USE_SYSTEM_FORM option to use libform instead of cmForm
Remove note disallowing use of some string and vector API.

The compilers introducing these limitations are no longer supported
as host compilers.
Track nested loop levels in CMake language with a stack of counters

It gets incremented while entering a loop block (e.g. foreach or while)
and gets decremented when leaving the block. Because scope borders for
example at function borders must be taken into account the counter is
put into a stack. With every new scope an empty counter is pushed on the
stack, when leaving the scope the original value is restored.

This will allow easy querying if the break command is properly nested
within a loop scope.

Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
break: Add policy CMP0055 to check calls strictly

Reject break() without loop scope or any arguments.

Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
return: Add test for returning inside a foreach loop

Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
CMake Nightly Date Stamp
FindwxWidgets: Add versions 3.0.1 and 3.0.2
Merge branch 'C-features-Wundef' into release
Merge branch 'FindwxWidgets-new-versions' into release
Merge topic 'C-features-Wundef'

d0af0fae WCDH: Make the header -Wundef safe for the C language.
Merge topic 'WCDH-multi-file'

4cf5179c WCDH: Make it possible to generate multiple files.
Merge topic 'ccmake-system-form'

6b045c3b ccmake: Add CMAKE_USE_SYSTEM_FORM option to use libform instead of cmForm
Merge topic 'remove-developer-forbidden-API'

beaea609 Remove note disallowing use of some string and vector API.
Merge topic 'return-test-foreach'

d124c411 return: Add test for returning inside a foreach loop
Merge branch 'release'
Revert "ClearMatches: Only clear matches which were actually set" (#15261)

This reverts commit v3.1.0-rc1~557^2~2 (ClearMatches: Only clear matches
which were actually set, 2014-03-12).  The optimization did not track
the match count in the same scope as the variables, allowing possible
inconsistency.

Resolve conflicts in Source/cmIfCommand.cxx, Source/cmMakefile.cxx,
and Source/cmMakefile.h by moving the changes to the new location
of the code involved.
Merge topic 'break-command-strictness'

d54617d0 break: Add policy CMP0055 to check calls strictly
bae604d9 Track nested loop levels in CMake language with a stack of counters