fix docs for `call-with-default-reading-parameterization'
raco pkg catalog-{show,copy}: add `--version' flag
pkg catalog protocol: document 'versions field
package system: clients extract version-specific info from a catalog result

When a client sends a query to a package catalog, it includes a
version number in the query, and a package catalog can customize its
response to the version. That approach allows evoluation of the way
that versions are mapped to results, but it does not allow a
directory-implemented catalog to offer version-specific information.
Allowing both the server and the client to filter on the version is
even more flexible, and in particular allows a directory-implemented
catalog to include version-specific mappings.
pkg/lib: add `pkg-directory->module-paths'
meta/pkg-push: add module and dependency information
fix some missing native-library dependencies
faster paths for parameter lookup

Calling a parameter function (with no arguments) can be 2-3 times
as fast as before.
setup/dirs: add `find-user-links-file'
fix immutable hash tree balancing

When an existing entry in the AVL tree for an immutable hash
is replaced with a new one, the new one did not always get
the right depth, which could throw off the tree balance.
typo
add shrink-path-wrt
use new shrink-path-wrt in drracket
loosen the syntactic restrictions on htdp teaching languages' require

Specifically, allow single-argument 'lib' require specs
adjust the drracket, menu-based teachpacks to be found via info.rkt files

Pre 6.0, the teachpacks were found using collection-path, but that doesn't
work anymore. Pre this commit, they were found by using

  (collection-file-path "image.rkt" "teachpack" "htdp")

and

  (collection-file-path "image.rkt" "teachpack" "2htdp")

and then looking for files in the same directory. This worked, but is
a total hack.

This commit changes to an info.rkt-based setup, but the changes ended up
percolating around the teachpack & teaching languages implementation more
than I would have liked (specifically because the internal
datastructure for a teachpack references was an sexp of the form:

  `(lib ,(? string-without-slashes?) ...)

but now teachpack references can be arbitrary results of
path->module-path, which never seems to be the above (instead using
the slash-based `lib' module paths)).

So a bunch of places in the teaching langauges code changed to
recognize the right slashes for the teachpacks that have always been
there to preseve the DrRacket API and fall back to just showing the
module path otherwise. There may be places I've missed, tho, that
are expecting the simple lib form and may now be surprised.

On the upside, 3rd parties (via new packages) can now add things
to the teachpack menu item. On the downside (beyond the likely
bugs I've just introduced in this commit), we're supposed to be
getting rid of this dialog, not making it more extensible.