optimizer: move more things inside let and begin

Refactor the code to move inside 'let' or 'begin'.

Also, in the test position of a 'if', recognize the 'not' inside a 'let' or 'begin'.
For example, transform (if (begin ... (not p)) x y) => (if (begin ... p) y x)
Previously, this conversion was made only when
the 'not' was the outermost expression.

And use the refactored code to move application inside 'let' or 'begin' in a single step
For example, transform ((let (...) ... (let (...) ... f) x) => (let (...) ... (let (...) ... (f x))
In the conversion, it's necessary to shift x to the new coordinates inside the 'let's.
In the new version x is shifted only once.
add a test case for parametric->/c that tests that the
polymorphic variables are actually instantiated when the
function is called
improve parametric->/c's cooperation with a few bells and whistles in contract error reporting
Fix opt-lambda property on opt-lambda methods

Related to PR 14726
Added trace-define, trace-let, trace-lambda

In racket/collects/racket/trace.rkt
Including build status and docs on pkgs.
Fix some typos
fixed error message according to Oliver Flatt's suggestion; Rackety
fixed error message according to Oliver Flatt's suggestion, take 2
Merge clauses even when no clause is consistent with the expected type.

Closes PR14731.
Fix type queries.
Fix the fix to type queries.

Should have been included in the original commit.
fix color-frame docs

closes PR 14733
make some arity error messages for ->i contracted functions
slightly less terrible

... but ->i still doesn't do as good a job as -> and ->* do for arity
errors (specifically, ->i is still letting the blame-less errors that
application constructs thru when it could be assigning blame)
Fix contract.
Include syntax/parse in defmacro.scrbl

So that can be hyperlinked
Fix more doc links.
pict: make `hc-append`, etc., match the docs

Allow pict arguments, with or without a separation-size
argument.

The recently added contract has rules out providing a
separation size with no arguments, which had been allowed
before. The underlying problem, though, was an inconsistency
in the implementation that allowed 0 pict arguments only
in the case that a separation size is provided.
restore accidentally removed GC check

Fixes a mistake in commit 768b93be82, which dropped a check that is
needed to trigger GCs during a sequence of large-block allocations.

Closes PR 14738
fix PLTSTRINGCONSTANTS printouts

also, Rackety