raco pkg {install,update}: guard against ill-formed arguments

Parsing a package source/name for scope inference should
report errors in the source/name syntax.

Closes PR 14026
raco setup: fix several triggers for building a doc index

In particular, fix various triggers that affect installing and
uninstalling packages.
fixes for binary-package stripping

Avoid duplicate `assume-virtual-sources` definitions, add
`assume-virtual-sources` as needed in top-level collections
within a package.
raco pkg tests: adjust to make tests less dependent on installation

In particular, instead of relying on the default scope as "user"
set up an installation with an indirection that configures the
scope to "user".
fixup for showing dependencies during update
Improve type->contract error messages
Tweak sum/e behavior for nicer Redex enumeration and simplify repeats.
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