raco decompile: improve argument checking and reporting

Relevant to PR 14525
typo
Update SCG section based on Sam-TH and Greg's comments
doc repair to Reference
compiler/compilation-path: added

Provides functions for finding the bytecode path for a source file,
which might depend on PLTCOMPILEDROOTS, etc.
raco {make,decompile}: fix bytecode path calculation

Use `compiler/compilation-path` to take into account PLTCOMPILEDROOTS, etc.

Closes PR 14525
optimizer: treat known procedure bindings, etc., as #t for `if`

Closes PR 14526
Remove #{id : Type} annotations from unit tests.

They don't work if the code is compiled and do if it isn't, which causes
interesting test case failures.
racket/class: shave a little time from `send`
racket/private/class-internal: protect ids private to class implementation
scriblib/figure: make figure hyperlinks show start of figure

... instead of putting the figure's caption at the top of the
browser window.

I can't decide whether I like the technique here, which is to use
JavaScript to move a figure caption's <a name=...> when the page is
loaded.  On the one hand, fixing up HTML via load-time JavaScript code
seems ugly compared to generating the right HTML in the first place.
On the other hand, it simplifies the generatation of a
backend-independent Scribble document (i.e., don't try to generate
different target locations for HTML and Latex), and HTML-specific
behavior seems properly handled at the HTML/JavaScript level.
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`.