redex: add variable-not-in to derivation generator
redex: refactor pattern unifier

- swap mutable for immutable hashes represetning eqs
- most functions now return p*e pairing patterns with envs
redex: cleanups after refactoring unifier
Fix `possible-domains' function in TR internals

This fixes type error message generation in some cases
and also the `query-type/result` command on multiple
valued functions.

The latter still does not allow multiple return type
queries (TODO) but it won't crash now.

Closes PR 14493
bring down below 102 columns
add natural-number/c random generator
Revert "adjust recursive-contract so that it terminates on cyclic values"

This reverts commit 7728e062f481a5bce42c663d91e6e0919d706e62.
added list-contract?

and specialized a bunch of list-related contracts to track list?-ness,
notably recursive-contract now accepts a #:list-contract? argument
that means that it insists that values it accepts be list? (and
thus not cyclic)

related to PR 14559
setup/pkg-deps: fix "racket" mapping

I'm unable to construct a test that exposes the problem, but fix the
"type" on the dependency list for the special "racket" package.
fix declaration for non-places, non+futures build
raco {pkg,planet}: exit with non-0 status for bad sub-command
raco pkg: check for conflicting docs, executables, etc.

Unfortunately, many existing packages rely on the fact that documentation-name
conflicts do not cause trouble when a package is installed in user scope
(because the documentation in that case is rendered with the package).
So, flag conflicts only for installation scope by default, but add a
`--strict-doc-conflicts` flag for strict checking even for user scope.
meta/pkg-build: handle dependency cycles
fix encoding of CMN in ARM JIT

It looks like bits 12 through 15 of the ARM encoding for CMN
should be 0s, not 1s, although many processors don't care.
add float behavior for margin-note* CSS
restrict float behavior to narrow screens
sync "base" package version
clarify pkg docs on "racket" dependency

Encourange a depedency on "base", instead.
clarify that document names are meant to be globally unique
fill in some missing history on Racket's slice of lightning