farm: by default, pull git repo in clients from server
build repair for case that "etc" does not exist
adjust mzlib/contract exports to more closely match 5.3.5's exports.

There are a number of formerly-exported identifiers that are now
no longer exported:

  provide/contract-transformer?
  true-provide/contract
  replace-provide/contract-transformer-positive-blame
  make-provide/contract-transformer

These are internal bindings that should probably never have been
exported. (They weren't documented.)

There are two currently-exported identifiers that were not
exported before:

  blame-update
  contract-continuation-mark-key

The first comes because mzlib/contract re-exports
racket/contract/combinator and blame-update is a new export there (for
option contracts). The other is less clear and may be hidden
(it is also new to racket/contract).
move mzlib docs to the compatility pkg
freeze mzlib/contract exports from racket/contract/combinator
as they were in 5.3.5
adjust htdp so missing teachpacks just print error messages
and continue, rather than raising exceptions
move drracket tests into the drracket pkg
adjust paths and info.rkt for new placement of files
change the way the eof button works so that it sends pending input
into the port (instead of just dropping it)
add an option to disable the blue arrow things
(and thus the blue boxes) entirely

closes PR 13761
ditto on build repair (missed two places)
Revert "move mzlib docs to the compatility pkg"

The "-lib" in "compatbility-lib" is meant to mean "no documentation"
-- and, more to the point, no dependency on documentation infrastructure.

Move later to a "compatibility-doc" package.

This reverts commit acce2d27d13a0bb2fffd4a4a5b844a2395b874f0.
raco setup: add package-dependency checking

The new `--no-pkg-deps' or `-K' flag skips the check.

If a module in package X refers to a module in package Y, check that
package X declares a dependency on Y.  Note that package X must
specifically depend on Y --- not another package that at the moment
happens to declare a dependency on Y.

A new "base" package represents the content of the core (so that, if
the core shrinks, a new "base2" can represent the smaller core).
Most every package now needs a dependency on "base".

Sometimes, it makes sense for X to access Y when X declares a
dependency on Z, because Z promises to always depend on Y.  For
example, the "gui" package is defined to combne "gui-lib" and
"gui-doc", so it's appropriate to use the modules of "gui-lib" when
depending on "gui". A package's "info.rkt" can therefore define
`implies' as a subset of the dependencies listed in `deps', which
means that depending on the package implies a dependency on the listed
packages. (It's even possible for packages to mutually imply each
other, which is why the dependency checking code ends up with a
union-find.)

Dependency checking distinguishes between run-time dependencies and
build-time dependencies: anything listed in a ".dep" file is a build
dependency, at least. To imply a run-time dependency, a reference must
appear in a bytecode file's imports, and not in a subdirectory or
submodule that would be pruned for a binary package.

The `--fix-pkg-deps' flag attempts to automatically fix package
dependency declarations (i.e., modify a package's "info.rkt" file)
based on inferred dependencies.
fill in some pkg `implies'
auto-fix dependencies in "pkgs"

Left one dependency broken: "drracket" currently depends on "htdp" for
a test. That needs to be fixed by removing the dependency (moving the
test to "htdp?), instead of changing the declared dependencies.
bring down below 102 columns
move drracket tests into their own package
fix up info.rkt's for the new drracket-test package
removed unused variable
adjust `raco setup' package-dependency reporting

Report packages that have no dependency declarations as "warnings"
(to stdout instead of stderr).

Report specific information when a dependency is discoeverd missing,
insteda of reporting it only in verbose mode.