UseJava.cmake: fully use cmake_parse_arguments in add_jar

Modify add_jar to fully use named arguments, rather than cmake
variables, for specifying output names/directories, etc. For backward
compatibility, the old variables are still honored if set, although
named arguments will override them.
CMake Nightly Date Stamp
Add some docs for file(GENERATE).
file: Add GENERATE command to produce files at generate time

The idea is to write to a temp file which contains generator
expressions, and at generate time, evaluate the generator expressions,
and write the result to a file.

Because executables on Windows are limited in the length of command line
it is possible to use, it is common to write command line arguments to a
file instead and specify the file as a source of arguments.

This new FILE(GENERATE) subcommand allows the use of generator
expressions to create such files so that they can be used with
add_custom_command for example.
Merge topic 'genex-generate-file' into next

8e15f1a Add some docs for file(GENERATE).
Tests/Module/GenerateExportHeader: Test exported free-function
Merge topic 'genex-generate-file' into next

b983a58 file: Add GENERATE command to produce files at generate time
Add $<LINK_LANGUAGE> generator expression

They can't be used when evaluating link libraries, but they can be
used for include directories and compile definitions. Later they can
be used for compile options.
Merge topic 'geh-add-missing-test' into next

74f24b2 Tests/Module/GenerateExportHeader: Test exported free-function
Merge topic 'language-generator-expressions' into next

3241014 Add $<LINK_LANGUAGE> generator expression
GenerateExportHeader: Generate only C identifiers as defines

The variables in this module are used to configure a header file
with defines whose name depends on the name of the target.

As valid names of targets may be invalid for use as defines, convert
the names of the defines used to C identifiers first. This is already
done in C++ code for the DEFINE_SYMBOL property.

This is not as simple as ensuring that the BASE_NAME is a C identifier,
because most of the define names are configurable, and because use of
a BASE_NAME which is not a C identifier, such as 4square can become a
C identifier by specifying a prefix in the generate_export_header
macro.
Merge topic 'geh-cleanup-identifiers' into next

7e24997 GenerateExportHeader: Generate only C identifiers as defines
Merge topic 'Memchecker-Mac-fix'

0aed09f Tests: ignore GuardMalloc messages on all Apple build, not just XCode ones
Merge topic 'fix-include_directories-whitespace-handling'

a97240b Tests/IncludeDirectories: Avoid shared library with no symbols
Merge topic 'language-generator-expressions'

3241014 Add $<LINK_LANGUAGE> generator expression
Merge topic 'geh-output-tweak'

bb412d0 GenerateExportHeader: Add newlines to separate the compiler output.
Merge topic 'geh-add-missing-test'

74f24b2 Tests/Module/GenerateExportHeader: Test exported free-function
Merge topic 'geh-MODULE-export'

7ffef50 GenerateExportHeader: Allow use of of this macro with MODULEs.
Merge topic 'geh-cleanup-identifiers'

7e24997 GenerateExportHeader: Generate only C identifiers as defines
Merge branch 'master' into next