Sync Fedora macros for optional support for out-of-source builds
These are synced from the version of these macros for Fedora 31/32,
which default to in-source builds but support out-of-source builds
when "%__cmake_in_source_build" is undefined.
Additionally, this introduces the generic %cmake_build, %cmake_install,
and %ctest macros for controlling a CMake build regardless of chosen
backend.
Reference: https://fedoraproject.org/wiki/Changes/CMake_to_do_out-of-source_builds