raco setup / raco pkg install: add `--fail-fast` flag

This flag is useful for speculative package installations runs where
we'd like to give up and try something else if it's not working.
Specifically, we might try installing multiple packages at once,
and then back off to a smaller subset if something goes wrong.
raco setup: fix installation of pre-built docs

Fix the case that the destination doc directory does not match
the document's source name.
raco catalog-archive: fix dependencies and tags in new catalog
meta/pkg-build: first cut at service to build all packages

The service relies on a VirtualBox VM to isolate package builds and
to quickly rewind an installation.

The service is not ready to run, but maybe it's getting close.
raco setup: constrain Scribbled document names

Contrain the fourth element of a list describing a document in
`scribblings` (in "info.rkt") to a collection-path element, instead of
allowing an arbitrary relative path. This constraint is needed by
various parts of the build system, which assume (for example) that all
documents are rendered to an immediate subdirectory.
optimizer: fix crashing bug

A continuation of 22b7cc6a5e: a second old bug in
shift_closure_compilation() than became more exposed.
Cleanup type-env-structs.

Removes all unused functions and cleans up the remaining ones to have
more consistent and simpler APIs.
Represent aliases in the lexical environment.