add support for colors with alpha to get-color-from-user

Also, a bit of Rackety (triggered because I would have had to turn a
letrec into a letrec-values to support disabling the ok button (and
also because the code was indented with tabs and not just spaces))
move stray `rackunit` module
raco pkg: handle bad `collection` strings

Also, add `setup/collection-name`, which provides functions for
checking collection-name syntax.

Closes PR 13886
raco setup: fix `info-domain`, first

That way, if you interrupt a `raco setup`, then programs that rely
on a directory of "info.rkt" mappings are more likely to work.
raco pkg {install,update}: add `--checksum` argument

The `--checksum` argument's main use is that it lets you pick a specific
commit from a GitHub repository. More generally, it lets you simulate
a package-catalog result, which includes a checksum.

Also, adjust checking of downloaded checksums to ensure that they
match the expected checksum, as predicted by a package catalog or
by the `--checksum` argument.
raco pkg: work with git tags as well as branches
paco pkg: allow a commit id to be used in a GitHub reference

Allow a commit id in place of a branch or tag.
Add package serialize-cstruct-lib for cpointer serialization

* define-serializable-cstruct is a combination of serializable-struct and define-cstruct.
  It defines serialize and deserialize functions for a limited subset of cstructs, that
  may contain primitive types, arrays, other serializable cstructs embedded or via pointer.
  Cases handled include: self-referencing cstructs, cyclic cstructs and shared pointers
* Tests and documentation are included
Renamed set? to generic-set? in Typed Racket test.
Changing Typed Racket test back to using set?, the line I had just changed
was supposed to be the more specific predicate.
Constructed a test related to PR 13982.
Remove unused require.
Remove unused dependencies.
Make opt-parent shared across different uses.
Make require/typed check its input more thoroughly.

Closes PR 13962.
Remove lfilters and make true/false-filter have a - prefix.
Add opt-expr and define-literal-syntax-class in utils.
Add simpler way of logging optimizations
Cleanup apply.rkt
Cleanup dead-code.rkt