kate: add project generator for the Kate project plugin

This patch adds an extra generator for KDE's kate text editor,
or better more specifically, the project plugin.

Alex
kate: insert build targets

This can be used by the build plugin in kate.
Code is quite similar to the one for Eclipse.

Alex
kate: add some documentation

Alex
target_include_directories: Allow relative path with genex

Treat paths which are relative and which contain a generator
expression which is not at the beginning as relative to the
source directory.

This matches the behavior of paths which are relative but contain
no generator expression at all.

Previously this would generate a relative path with the IMPORTED
target on export(), which would be a reported as a non-existent
path on import. If used directly in the buildsystem, it would be
reported as a relative path, which is also an error. There is no
need for a policy in this case.
Export: Test existing behavior of exporting includes with genexes.

Test that no warning or error diagnostic is issued for 'good code'.
Export: Process relative includes after genex evaluation.

In code such as

 install(TARGETS ...
   INCLUDES DESTINATION $<FOO>include
 )

the generator expressions are evaluated at generate-time. Delay
determining whether each entry is a relative path until after
the generator expressions are evaluated. Such relative paths
are based relative to the CMAKE_INSTALL_PREFIX.
Export: Process INSTALL_INTERFACE in INCLUDES DESTINATION.

Code such as

 install(TARGETS ...
   INCLUDES DESTINATION $<INSTALL_INTERFACE:include>
 )

should behave as if the INSTALL_INTERFACE wrapper were not present.
Export: Prefix relative items with genexes in INSTALL_INTERFACE.

Code such as

 target_include_directories(foo INTERFACE
   $<INSTALL_INTERFACE:include$<FOO>>
 )

should be treated as a relative directory, despite the genex, after
the INSTALL_INTERFACE is stripped away.

Previously, this would generate a relative directory on export, which
would be an error on import, so no policy is needed.
Export: Report error on relative include with genex.

Diagnostics which check the sanity of exported include paths
previously skipped over any path containing a generator expression.

Introduce a policy to issue an error message in such cases.

The export files created in the OLD behavior are not usable, because
they contain relative paths or paths to the source or build location
which are not suitable for use on installation. CMake will report an
error on import.
UseSWIG: Name python module according to swig flags (#13318)
CPackWiX: add CPack component support

Creates a hierarchy of WiX features from CPack components and component groups.
Switch to the FeatureTree UI in case components have been defined.
Handles the component REQUIRE and HIDDEN options
and the component group EXPANDED option.
QtAutogen: Use config without prefix in map key.

This is used by IDE generators to select config-specific includes
and defines.
Genex: Add {UPPER,LOWER}_CASE and MAKE_C_IDENTIFIER.
QtAutoUic: Handle new -include command line parameter.
QtAutoUic: Add INTERFACE_AUTOUIC_OPTIONS target property.

Transitively consume the property from linked dependents.

Implement configuration-specific support by following the pattern
set out for compile definitions and includes in cmQtAutoGenerators.

Implement support for origin-tracking with CMAKE_DEBUG_TARGET_PROPERTIES.

This is motivated by the needs of KDE, which provides a separate
translation system based on gettext instead of the Qt linguist
translation system. The Qt uic tool provides command line options
for configuring the method used to translate text, and to add an
include directive to the generated file to provide the method.

 http://thread.gmane.org/gmane.comp.kde.devel.frameworks/7930/focus=7992

Implement the interface to provide the uic options as a usage-requirement
on the KI18n target, as designed for KDE.
UseSWIG: set .bundle ext on OSX and no prefix (#12184)
UseSWIG: Handle octave extensions.
Don't generate subdir convenience rules for IMPORTED targets.

This was missing from commit c34968a9 (Port some of the generator
API to cmGeneratorTarget., 2012-10-10). The generator targets
stored with the cmMakefile include IMPORTED targets, unlike the
accessor for resgular targets. Before this patch, rules would
be generated for Qt5::Core for example, which result in broken
makefiles.
FindSWIG: allow to provide SWIG_DIR (#3498)
CMake Nightly Date Stamp