VS,Xcode: Add CMakeLists.txt sources without mutating targets

Rather than injecting `CMakeLists.txt` files into each target's
`SOURCES`, teach the generators to add them during generation using
dedicated code.  This avoids mutating the original targets, and avoids
polluting `$<TARGET_PROPERTY:foo,SOURCES>` with generator-specific
content.

This also avoids listing the `CMakeLists.txt` sources in the results of
`CMAKE_DEBUG_TARGET_PROPERTIES==SOURCES` so the `RunCMake.TargetSources`
test no longer needs a separate case for IDEs.
Status Job ID Name Coverage
  External
passed cdash

passed cmake-dash3win7-windows-release-ninja

passed cmake-hythloth-linux-debug-makefiles+sphinx

passed cmake-hythloth-linux-release-lint-iwyu-tidy

passed cmake-moonshade-osx-debug-ninja

passed cmake-moonshade-osx-release-makefiles

passed cmake-terfin-windows-release-vs2017

passed ghostflow-branch-check-master

passed ghostflow-commit-check

passed ghostflow-stager

passed cmake-dash3win7-windows-release-ninja

passed cmake-dash3win7-windows-release-ninja

passed cmake-dash3win7-windows-release-ninja

passed cmake-dash3win7-windows-release-ninja

passed cmake-dash3win7-windows-release-ninja

00:21:02

passed cmake-hythloth-linux-debug-makefiles+sphinx

passed cmake-hythloth-linux-debug-makefiles+sphinx

00:34:57

passed cmake-hythloth-linux-debug-makefiles+sphinx

passed cmake-hythloth-linux-debug-makefiles+sphinx

passed cmake-hythloth-linux-debug-makefiles+sphinx

passed cmake-hythloth-linux-release-lint-iwyu-tidy

00:11:53

passed cmake-hythloth-linux-release-lint-iwyu-tidy

passed cmake-hythloth-linux-release-lint-iwyu-tidy

passed cmake-hythloth-linux-release-lint-iwyu-tidy

passed cmake-hythloth-linux-release-lint-iwyu-tidy

passed cmake-moonshade-osx-debug-ninja

00:08:22

passed cmake-moonshade-osx-debug-ninja

passed cmake-moonshade-osx-debug-ninja

passed cmake-moonshade-osx-debug-ninja

passed cmake-moonshade-osx-debug-ninja

passed cmake-moonshade-osx-release-makefiles

passed cmake-moonshade-osx-release-makefiles

passed cmake-moonshade-osx-release-makefiles

passed cmake-moonshade-osx-release-makefiles

passed cmake-moonshade-osx-release-makefiles

00:09:12

passed cmake-terfin-windows-release-vs2017

passed cmake-terfin-windows-release-vs2017

00:30:55

passed cmake-terfin-windows-release-vs2017

passed cmake-terfin-windows-release-vs2017

passed cmake-terfin-windows-release-vs2017

passed ghostflow-stager

passed ghostflow-stager

passed ghostflow-stager

passed ghostflow-stager