Fixes #34714.
Packagers currently need to copy shell completion scripts from contrib/completions/ into the appropriate system directories. Install the scripts alongside their corresponding binaries with cmake --install, including when installing a binary by component.
Targets declare their available bash and fish scripts explicitly, following the existing HAS_MANPAGE pattern. This avoids deciding what to install based on file existence at configure time.
Bash scripts install to ${datadir}/bash-completion/completions/; fish scripts install to ${datadir}/fish/vendor_completions.d/. Both are enabled by default. Use -DINSTALL_BASH_COMPLETIONS=OFF or -DINSTALL_FISH_COMPLETIONS=OFF to disable either shell’s scripts.