fix references to subdirectories of a rendered manual

For example, fix the resolution of a link to a binding in the R5RS
or R6RS spec.
r{5,6}rs: change `letrec` to signal use-before-definition errors

The old `letrec` implementation used the R5RS macro with `undefined`,
which differents from Racket's `letrec` in that no variable is
initialized until all right-hand sides are evaluated.  It turns out
to be simpler and produce the same effect to use `letrec-values`
with a single clause: `(letrec ([x e1] [y e2]) ....)` ->
`(letrec-values ([(x y) (values e1 e2)]) ....)`.
optimizer: don't move expressions into a `with-continuation-mark`

... unless the optimizer can prove that the expression doesn't
inspect continuation marks.
racket/shared: get rid of `(include "shared-body.rktl")

Use a macro instead of text reuse.
racket/unsafe/undefined: add `chaperone-struct-unsafe-undefined`
update docs on "undefined"