There are two main changes:
* Expansion of internal-definition contexts uses a single
"rename" step (which is really an "add scope" step) at the
start of expansion, instead once for each body form.
Instead of changing the structures, the derivation parser just
pushes the single rename set down to all the body forms.
* Expansion of a `let`, `letrec`, or `letrec-syntaxes+values` form
parses its body as a sequence instead of (reundantly) as an
internal-defition block if the form was itself generated from
an `internal-detiniion` block.
The derivation parser handles this change by just allowing
block or sequence where only a block was allowed before.
The old use relied on a more or less accidental correspondence between
the `$` variables introduced by `parser` and get-shadower before those
variables are bound. Get rid of it in favor of normal hygiene bending.