fix_install_names: extract change_dylib_id
relocate_install_names: rewrite cellar names before prefix names

The cellar may overlap with the prefix, so if we replace the prefix
first, we will end up with paths like "@@HOMEBREW_PREFIX@@/Cellar"
instead of "@@HOMEBREW_CELLAR@@", which will break on installations
where the cellar and prefix are disjoint.
Insert placeholders for prefix and cellar in relocatable bottles
Do relocation check while preparing bottle
Remove special handling for relocatable pkgconfig files
Teach installer about prefix and cellar placeholders
Let fix_install_names fix up placeholders too
relocate_install_names: yielded names are already strings
relocate_install_names: use a single ensure_writable block
relocate_install_names: only one substitution is needed
Run relocation machinery on local bottles

Since we now use placeholders for the prefix and cellar, we need to run
the relocation machinery on all bottles.
Relocate libtool (.la) files as well as pkgconfig (.pc)

Ignore quotes, just do a global substitution on cellar and prefix.

Closes #24894.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Temporarily disable cellar :any

These need to be updated to reflect changes to relocation.
xz: restore relocatable bottle
freetype: restore relocatable bottle
libpng: restore relocatable bottle
readline: restore relocatable bottle
cmake: restore relocatable bottle
jpeg: restore relocatable bottle
gmp: restore relocatable bottle