Fix determination of when we're evaluating compile definitions.

Also handle the config-specific property.
Rename the IncludeDirectoriesEntry to be more generic.
Don't use LINKED where not needed.
Use the link information as a source of compile definitions and includes.

After evaluating the INTERFACE_INCLUDE_DIRECTORIES, of a target in a
generator expression, also read the INTERFACE_INCLUDE_DIRECTORIES of
its link interface dependencies.

That means that code such as this will result in the 'user' target
using /bar/include and /foo/include:

 add_library(foo ...)
 target_include_directories(foo INTERFACE /foo/include)
 add_library(bar ...)
 target_include_directories(bar INTERFACE /bar/include)
 target_link_libraries(bar LINK_PUBLIC foo)

 add_executable(user ...)
 target_include_directories(user PRIVATE
    $<TARGET_PROPERTY:bar,INTERFACE_INCLUDE_DIRECTORIES>)

Also process the interface include directories from direct link
dependencies for in-build targets.

The situation is similar for the INTERFACE_COMPILE_DEFINITIONS. The
include directories related code is currently more complex because
we also need to store a backtrace at configure-time for the purpose
of debugging includes. The compile definitions related code will use
the same pattern in the future.

This is not a change in behavior, as existing code has the same effect,
but that existing code will be removed in follow-up commits.
Revert "Don't allow utility or global targets in the LINKED expression."

This reverts commit 9712362b4580fb92394ecf8ff57be186571f4319.
Don't populate INTERFACE includes and defines properties in tll.

This is a partial revert of commit 77cecb77 (Add includes and compile
definitions with target_link_libraries., 2012-11-05).

As the interface includes and defines are now determined by the link
closure, there is no need to populate the corresponding properties
explicitly.
Revert "Add the $<LINKED:...> generator expression."

This reverts commit 0b92602b816e2584db3781b120a1e5200da72ada.

Conflicts:
	Source/cmGeneratorExpressionEvaluator.cxx
	Tests/CMakeCommands/target_compile_definitions/CMakeLists.txt
	Tests/CMakeCommands/target_include_directories/CMakeLists.txt
Revert "find_package: Reword <package>_NO_INTERFACES documentation"

This reverts commit 179f49560286e2e322b9b0cf5d0a277b7634540f.
Revert "Add a way to exclude INTERFACE properties from exported targets."

This reverts commit 2c3654c3de718fe822f8960063373774fc019494.

The removal of some tests added in commit 77cecb77 (Add includes and compile
definitions with target_link_libraries., 2012-11-05) are also squashed
into this commit.
Don't add target-specific interface includes and defines to Qt 4 targets.

This is a partial revert of commit c8ee07d0 (FindQt4: Add INTERFACE
includes and defines to Qt4 targets, 2012-12-31).
Merge topic 'linked-usage-cleanup' into next

4aae6f7 Don't add target-specific interface includes and defines to Qt 4 targets.
b84e3ab Revert "Add a way to exclude INTERFACE properties from exported targets."
95a06f9 Revert "find_package: Reword <package>_NO_INTERFACES documentation"
c72e0e2 Revert "Add the $<LINKED:...> generator expression."
050f4e7 Don't populate INTERFACE includes and defines properties in tll.
c9382e5 Revert "Don't allow utility or global targets in the LINKED expression."
f021677 Use the link information as a source of compile definitions and includes.
5c9f5e3 Don't use LINKED where not needed.
5b88504 Rename the IncludeDirectoriesEntry to be more generic.
b030323 Fix determination of when we're evaluating compile definitions.