raco pkg update: avoid duplicate updates of a single package

A table was incorrectly used to track both the checksum and
update status of packages; fix that, so that `raco pkg update --all`
doesn't generate a plan with multiple updates of a single package.
Meanwhile, also protect against multiple and inconsistent planned
updates of a package (by collapsing multiple consistent plans into
one).
raco pkg update: adjust `--update-deps` handling, again

Still trying to get the dependencies-have-changed-for-a-link case
right without breaking other cases.
Take advantage of new smaller pkgs.
raco pkg update: fix conflict checking vs. installed being updated
Fix typos in pkg docs
generalize `{impersonator,chaperone}-of?` on immutable hash tables
raco setup: repair clean-up of PLaneT info-domain cache

Unintentional shadowing caused the info-domain clean-up code to reject
all PLaneT path registrations. As a result, installing a PLaneT
package removes all info-domain mappings (used to find documentation,
`raco` commands, etc.) for other PLaneT packages. Running `raco setup`
repairs the problem, because it re-adds all entries after
(incorrectly) clearing them out.
fix UDP receive on Windows

When the received message is larger than the space available, it's
still received.
Remove dependency on `compatibility/mlist`.
Move tests for SRFIs to "racket-test".
Another couple "racket-test-core" fixes.
added hash/dc
Add various changes to sconfig and configure.

- Modify the features used by OpenBSD (not everything was
  tested). Mostly copied from Linux, FreeBSD and NetBSD.
- Add support for Bitrig, a fork of OpenBSD. Eventually
  they will differ more and more from OpenBSD.
- Typos and extra trailing spaces.
- Update config.guess and config.sub from GNU.
remove accidentally re-added "native-pkgs"
Finish fixing dependencies of "racket-test-core".

This required moving some tests to "racket-test", and putting them
in modules that use `rackunit`. Also, some uses of rackunit were
removed and switched to more primitive systems. Some improvements
here, particularly in "foreign-test.rktl", would still be good,
but everything passes at the moment.
adjust hash/c so that it always copies immutable hashes

before this commit it would copy them only when the weren't
already impersonated/chaperoned, leading to different
contract checking that can be confusing in that case

it did this because the chaperone-of? check wasn't general
enough to cope with copying always, but since commit
b05d07ad104 it now is