drop non-relative paths in procedure source locations

A path that is not relative to the enclosing file can show up
due to cross-module inlining. Package-based modules do not have
a good relative path to "collects", which creates trouble for
distributing compiled modules where, say, `map' was inlined.

It might be possible to keep the path in module-path-index form
so that a path can be constructed appropriately at run time, but
it's much simpler to just punt on function source locations in
this relatively rare case.
pkg/path: add `path->pkg+subpath+collect'

I was going to use this extension to implement `path->module-path',
but it turns out that `path->module-path' already exists and in
a form that works with packages. Still, this extension might be
useful in the future.
add some tests for `path-module-path'
Typed Racket: reference `#%type-decl' through a module path index

Avoid problems with absolute paths and bytecode files.
misc changes to avoid absolute paths in bytecode files

In many cases, `path->collects-relative' is used instead of
`path->main-collects-relative' to generalize existing support
for collection-relative paths.
Fix handling of hasheq and hasheqv in any-wrap/c.

Fixes bug reported by Abraham Egnor.
Improve deps for Typed Racket tests.
split out db pkgs
scribble: prefer dest-relative paths to collection-relative paths

Documentation for a user-scoped package is rendered inside a
collection path but moved outside of the collection path when
later installed in installation-wide, so it's important to
try a destination-relative path first.
fix some absolute paths in an in-place build
Makefile: make `PKGS' not sticky by default, add `again' target

More generally, `LINK_MODE' controls how the `PKGS' value is saved
or restored: "--save" saves the value (the default), "--restore"
uses a previously saved value (if any), and "" disables saving or
restoring.

The `again' target recurs to `in-place' with `LINK_MODE=--restore'.
Add some test cases for plambda fixes that have already been applied.

Closes PR 13751.
Closes PR 13754.
prune absolute paths from "info-cache.rktd" files

They're now stored as relative (if possible), instead of always
as absolute. When transitioning from old paths to new paths,
the old ones need to be purged explicitly.
raco setup: move `-K' flag to intended meaning
Fix bash completion for package split.
break contract-test.rktl into 51 files

(plus one new file to act as a driver for
running the whole test suite)

Beyond the obviousness of this cleanup, it also helps me
test the contract system without having to load any code
that depends on it (making the test cases far more useful
when I'm breaking low-level parts of the contract system
(like ->))
add myself to the email notification
Switch two type errors to internal errors

One of these was broken and falling into that case would
raise a random runtime error anyway.
Document contract-continuation-mark-key.
Move typed-racket-more to typed-racket-pkgs.