cmGlobalGenerator: Do not propagate const through GetCMakeInstance

Combine the const and non-const GetCMakeInstance to a const one and
return a pointer to non-const cmake from it.
Refactor tool selection for edit_cache (#14544)

Refactor edit_cache tool selection to ask each global generator for its
preference.  Teach the Ninja generator to always use cmake-gui because
Ninja by design cannot run interactive terminal dialogs like ccmake.
Teach the Makefile generator to use cmake-gui when also using an "extra"
generator whose IDE has no terminal to run ccmake, and otherwise fall
back to CMAKE_EDIT_COMMAND selection for normal Makefile build systems.
CPackWiX: documentation formatting changes and cleanup
Merge topic 'wix-custom-arguments' into next

8a5b5ba CPackWiX: documentation formatting changes and cleanup
Revert "Ninja: run cmake-gui for target edit_cache"

This reverts commit 5369a023eeafe7bee367fed74f62f8321ebc4e4c.
It will be replaced by a more general change.
Merge topic 'ninja-edit-cache' into next

4193f1e Revert "Ninja: run cmake-gui for target edit_cache"
Merge topic 'cleanup-edit_cache-target' into next

684063c Refactor tool selection for edit_cache (#14544)
eaf5b7a cmGlobalGenerator: Do not propagate const through GetCMakeInstance