Add a target property that will be read on unity file generation to
attempt to use a relative path to the source file from the CMake Source
Directory or the generated unity file. Additionally add the CMake
Source Directory and the CMake Binary directory to the include path of
the generated unity files.
Closes: #26352
Single-config generators already support unity builds with per-config
sources because they compute sources using `CMAKE_BUILD_TYPE` as the
configuration. Each original source is either included in the unity
build source, or not.
Teach multi-config generators to compute the list of sources for
inclusion in unity builds using all configurations. Previously they
only used the empty string as the configuration. Each original source
may be included in some configurations, but not others. Use
preprocessor conditions to guard their inclusion when necessary.
Fixes: #22892