Fix typo in CMP0019 documentation

In the OLD behavior of the policy the target_link_libraries LINK_PUBLIC
option will still populate the new INTERFACE_LINK_LIBRARIES property.
The value will be ignored except for determining whether to warn when
the policy is not set.
Cleanup INTERFACE_LINK_LIBRARIES property implementation

In cmTarget::ComputeLinkInterface expand the old and new link interface
properties only when necessary based on CMP0019.  Add a missing newline
in the property documentation.  Simplify cmTarget::ComputeImportInfo.
GenEx: Clarify $<CONFIG_DEBUG> documentation

Refer to the global property that describes what a "debug" configuration
means.
GenEx: Add expressions to specify build- or install-only values

This is for specifying INCLUDE_DIRECTORIES relevant to the build-location
or the install location for example:

 set_property(TARGET foo PROPERTY
   INTERFACE_INCLUDE_DIRECTORIES
   "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR};${CMAKE_CURRENT_SOURCE_DIR}>"
   "$<INSTALL_INTERFACE:${CMAKE_INSTALL_PREFIX}/include>"
 )

A 'bar' target can then use:

 set_property(TARGET bar PROPERTY
   INCLUDE_DIRECTORIES
   "$<TARGET_PROPERTY:foo,INTERFACE_INCLUDE_DIRECTORIES>"
 )

and it will work whether foo is in the same project, or an imported target
from an installation location, or an imported target from a build location
generated by the export() command.

Because the generator expressions are only evaluated at build-time, these
new expressions are equivalent to the ZeroNode and OneNode.

Additionally, add the EXPORT_NAMESPACE expression to expand to the
namespace used when using export() or install(EXPORT).  For example:

 set_property(TARGET bar PROPERTY
   INCLUDE_DIRECTORIES
   "$<TARGET_PROPERTY:$<EXPORT_NAMESPACE>foo,INTERFACE_INCLUDE_DIRECTORIES>"
 )

The GeneratorExpression test is split into parts. Some shells can't run
the custom command as it is getting too long.
GenEx: Add the CONFIG_DEBUG expression

Expand $<CONFIG_DEBUG> to '1' for "debug" configurations (according to
the DEBUG_CONFIGURATIONS global property) or '0' otherwise.  This is
equivalent to the "debug" keyword in target_link_libraries.
Add INTERFACE_LINK_LIBRARIES property

This new INTERFACE_LINK_LIBRARIES property is a replacement for the
(IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)? properties as it can
contain generator expressions.  It is also part of the generated
IMPORTED targets generated by the export() and install(EXPORT) commands.
Do not set or read the new property for STATIC libraries.

User code may already populate the old properties, so add policy CMP0019
to handle that.  Record the policy setting when a target is created to
choose which interfaces to make available to consumers of the target:

- In the OLD behavior ignore INTERFACE_LINK_LIBRARIES and provide the
  old interface properties to consumers.

- In the NEW behavior make INTERFACE_LINK_LIBRARIES available to
  consumers and set the old LINK_INTERFACE_LIBRARIES properties only
  when the project set one explicitly.  LINK_PUBLIC no longer sets it.

- If the policy is not set then compare the old and new properties, warn
  if they are different, and use the OLD behavior.

The policy affects only the interface properties provided by a target,
not which interfaces are used by consumers.  When linking to a target
(IMPORTED or not) that provides the new INTERFACE_LINK_LIBRARIES, always
use it.  Fall back to the old LINK_INTERFACE_LIBRARIES properties only
if they are set and the new one is not.
Merge topic 'add-INTERFACE_LINK_LIBRARIES-property' into next

3a1660d GenEx: Clarify $<CONFIG_DEBUG> documentation
977a098 Cleanup INTERFACE_LINK_LIBRARIES property implementation
93ac463 Fix typo in CMP0019 documentation
Merge topic 'add-INTERFACE_LINK_LIBRARIES-property' into next

6a39219 Add INTERFACE_LINK_LIBRARIES property
8e9f8b6 GenEx: Add the CONFIG_DEBUG expression
88cf651 GenEx: Add expressions to specify build- or install-only values