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

2852eb92 target_sources: New command to add sources to target.
5106a7f7 Make the SOURCES target property writable.
c3e72f1e cmTarget: Make the SOURCES origin tracable.
e74d9ff5 cmTarget: Allow transitive evaluation of SOURCES property.