Restore support for explicitly referenced CMakeLists.txt sources
Since !1392 (merged) we do not add
CMakeLists.txt to target sources but instead generate references to them directly. This broke projects that explicitly specify their
CMakeLists.txt file as a source file because the explicit entry is no longer consolidated with the generated one.
Teach the relevant generators to avoid duplicating
CMakeLists.txt source references and add test cases.
Fixes: #17828 (closed)