Memoize redex thunk/e's.

Tests run over twice as fast.
fix `local-expand` on module body with phase-2 binding
raco setup: allow an installer only in bytecode form
scribble: add `#:indirect` option to `defmodule`

Also, fix up some command-line argument handling for `scribble`.
Typed Racket reference: use `#:indirect` to fix some docs

Also, use `#:no-declare` to fix some module declarations that are
all in the same section. (If bindings were defined in the modules, then
they'd need to be in different section, but the section titles could
be hidden to make them look like they're all in the same section.)
fix custodian-limit checking for phantom byte strings

Closes PR 14036
add #:omit-constructor option to struct form of contract-out
add #:omit-constructor option to @defstruct[] and @defstruct*[]
added struct-doc and struct*-doc to scribble/srcdoc
Fix negated wording in reference

This appears to be the actual behavior and is consistent
with `defform` and other forms
Fix typo
Improve error message for misuse of type names

Closes PR 13289
add 'require' to the begin keywords
and tweak the example for the color schemes
Fix a bug in color scheme setup
Remove units in parts of `compiler`, `dynext`, `setup` and create the `cext-lib` package.

`cext-lib` contains much of the contents of `dynext`, which
is no longer very widely used.

Also moved the implementation of the `mzc` executable
to a more appropriate package.

Also, used `lazy-require` consistently for dynamically
loading implementations.