cmComputeTargetDepends: Use valid config to compute target depends.

If CMAKE_BUILD_TYPE is set, and user code contains:

 target_link_libraries(myexe prefix_$<$<CONFIG:Debug>:debug>)

then the computation with an empty config was computing a target-level
dependency on a target or library called prefix_, and a dependency
on a target or library called prefix_debug (as expected).

The existing logic skips 'prefix_' because it is not a known target,
and defers to the link-dependencies logic to find the library. The
link-dependencies logic does not incorrectly handle the config as
cmComputeTargetDepends did, and so did not encounter 'prefix_'
during its computation. This likely had no effect on the generated
buildsystem.
Simplify multiple config handling.

Use conventional pattern of not repeating the loop body for empty
config.
cmGeneratorTarget: Don't add computed sources to the target.

When config-specifig generator expressions are supported, a target
may have SOURCES:

 src1.cpp $<$<CONFIG:Debug>:src2.cpp> $<$<CONFIG:Release>:src3.cpp>

and computation in cmTargetTraceDependencies would add each of the
src2.cpp and src3.cpp sources back to the target without a
config-guard.  That would make the sources be used later when
generating the buildsystem, regardless of the configuration.

Avoid calling AddSource on the target with the result of the
GetSourceFiles call.
cmTarget: Make the source files depend on the config.

Disallow the use of config-specific source files with
the Visual Studio and Xcode generators. They don't have
any way to represent the condition currently.

Use the same common-config API in cmQtAutoGenerators. While
it accepts config-specific files, it doesn't have to support
multiple configurations yet.

Loop over the configs in cmTargetTraceDependencies
and cmGlobalGenerator::WriteSummary and consume all source
files.

Loop over the configs in cmComputeTargetDepends and compute the
object library dependencies for each config.
cmTarget: Allow transitive evaluation of SOURCES property.

Extend the cmGeneratorExpressionDAGChecker with an interface
returning the name of the top target.  Use that to determine
when there is a DAG violation, as required by the RunCMake.Languages
tests.
cmTarget: Make the SOURCES origin tracable.
Make the SOURCES target property writable.
target_sources: New command to add sources to target.
Merge topic 'target-transitive-sources' into next

2e1b1cb9 target_sources: New command to add sources to target.
55b1bc50 Make the SOURCES target property writable.
0034be9f cmTarget: Make the SOURCES origin tracable.
958b86c0 cmTarget: Allow transitive evaluation of SOURCES property.
86dca8d2 cmTarget: Make the source files depend on the config.
d99bfbb1 cmGeneratorTarget: Don't add computed sources to the target.
6f8be103 Simplify multiple config handling.
c478b649 cmComputeTargetDepends: Use valid config to compute target depends.