Features: Extend concept to C language.

Add properties and variables corresponding to CXX equivalents.

Add features for c_function_prototypes (C90), c_restrict (C99),
c_variadic_macros (C99) and c_static_assert (C11). This feature
set can be extended later.

Add a <PREFIX>_RESTRICT symbol define to WriteCompilerDetectionHeader
to conditionally represent the c_restrict feature.
Tests/BuildDepends: Make 3-second delay more robust

Use "cmake -E sleep 3" instead of execute_process with a TIMEOUT of 3.
This avoids using a busy loop or depending on a timeout to kill it.
Do not change minimum required version in modules

Some modules change CMake minimum required version when they are
included. For example:

  cmake_minimum_required(VERSION 2.8.12)
  message("${CMAKE_MINIMUM_REQUIRED_VERSION}")
  include(CheckTypeSize)
  message("${CMAKE_MINIMUM_REQUIRED_VERSION}")

will produce the following output:

  2.8.12
  2.6

This patch ensures that when you include a CMake module the minimum
required version and the policies set are left unchanged.

Fixes Issue #14864
Keep cmake_minimum_required calls in sync with current version

Update cmake_minimum_required calls in CMakeLists.txt in Modules and in
CMakeLists.txt generated by other modules, so that they are always in
sync with current CMake version.
KWSys 2014-05-19 (c282e64f)

Extract upstream KWSys using the following shell commands.

$ git archive --prefix=upstream-kwsys/ c282e64f | tar x
$ git shortlog --no-merges --abbrev=8 --format='%h %s' 6074f33f..c282e64f
Brad King (2):
      2e00d252 SystemTools: Port cygwin path conversion to modern API
      c282e64f Process: Workaround child kill trouble on Cygwin

Change-Id: I39a3ca47fbb4065eff922d94e6d7019c417ed75c
Merge branch 'upstream-kwsys' into update-kwsys
Merge topic 'compile-features-C-language'

e0890d03 Features: Extend concept to C language.
Merge topic 'preserve_cmake_minimum_required_version'

1890c668 Keep cmake_minimum_required calls in sync with current version
81a3f228 Do not change minimum required version in modules
Merge topic 'test-BuildDepends-sleep'

e4114ee9 Tests/BuildDepends: Make 3-second delay more robust
Merge topic 'update-kwsys'

2903d609 Merge branch 'upstream-kwsys' into update-kwsys
ed52685d KWSys 2014-05-19 (c282e64f)
KWSys SystemTools: Port cygwin path conversion to modern API

The cygwin_conv_to_win32_path function is deprecated in favor of
cygwin_conv_path.  Use the latter.
KWSys Process: Workaround child kill trouble on Cygwin

When we kill a child we send SIGSTOP first so that we can traverse its
child processes recursively.  On unwinding the recursion we then send
SIGKILL.  Current Cygwin has trouble when both signals are sent in quick
succession by the parent process.  Add a usleep(1) after sending the
first signal to give up our time slice and give Cygwin a chance to
process the first signal before sending the second.
Merge topic 'backport-kwsys-cygwin-fixes'

0c7f84ca KWSys Process: Workaround child kill trouble on Cygwin
e604209c KWSys SystemTools: Port cygwin path conversion to modern API