Fuse loops in promote-demote.
optimizer: enable movement of constants that shouldn't be duplicated

Closes PR 14531
optimizer: more ad hoc `car` and `cdr` cases

Closes PR 14533
optimizer: ad hoc optimization of predicates applied to constructions

This is probably more of a job for Typed Racket, but maybe it's
useful to detect some obviously unnecessary allocations of lists, etc.

Closes PR 14532
optimizer: another little step toward type inference

Generalize some of the tracking and optimization of predicates
with respect to constructors and bindings.

This generalization exposed an old bug in the optimizer, which is
that information accumulated in the "then" branch of a conditional
was not reliably flushed when continuing analysis after the conditional.
reduce size of manual-fonts.css
racket/unit: repair test

Should have been part of bcafba989f.
setup/parallel-build: repair test

Should have been part of 9e3b984463.
pkg/lib: fix `pkg-catalog-update-local` version selection

Also fixes problems with using a relative target path
with `raco pkg catalog-archive`.
raco pkg catalog-archive: parse sources like `catalog-copy`
raco pkg catalog-show: improve output format

Separate packages with a blank line, and fix formatting of
a module list.
raco pkg catalog-archive: keep module & dependency info

Also fixes another relative-path problem.
update RacketCon page to add the group-rate reservation link

Plus various adjustments to the format.
pkg/db: make local package database's path relative to installation name

Instead of `(version)`, use `(get-installation-name)` for the path
of the local database used by the GUI package manager.
update Infogroep mirror contact
JIT: fix potential problem in transition to 64-bit jumps

On x86_64, the JIT compiler initially generates code with 32-bit
jumps, but it switches to 64-bit jumps when so much code is allocated
that it gets spaced out enough. That transition could happen during a
recursive call to the JIT compiler or while one place is in the JIT
and other installs a shared code pointer, in which case a bad jump
could be generated. This problem is unlikely to happen, but it looks
possible.
JIT: minor comparison repairs

Fix some comparisions that are written as pointer comparisons
when they're actually integer comparisons. Also, remove an
unnecessarily slow variant of pointer compairson for x86_64.
JIT: better code for floating-point constants on x86+SSE
compiler letrec_check pass: recognize effect-free primitives

As in "Fixing Letrec". This improvement corrects a performance
regression with the revised expansion of R5RS `letrec`, which
wraps right-hand sides with `values`.

Besides detecting effect-free primitives, we have to fix the
treatment of the right-hand side for a multi-binding `letrec-values`
clause. For now, we conflate all of the bindings in a single
clause.
clarify comment in JIT implementation

Refines commmit c0ec9702e8.