forgot to add this file in my previous commit
fix bugs in unstable/2d lexer
add a keystroke to widen a rectangle
adjust syntax browser to work better for literal hashes and vectors

closes PR 13537
add context information into the error messages for option contracts

Also, minor code cleanup (don't create a function and pass it
around when has only one thing in its closure and you can
just pass that around, especially when passing the function around
makes the code harder to read and the created function has to
have a "dot" arglist and use "apply" in its body)
properly named
Improve label generation code.
Make `cat%' into a macro so `~a' etc get a proper name.
Improve `file' tests.

* Move sha1 test to the same place, to be run like the others.

* Unify tests for untar and unzip.

* Also improve them: test results instead of failing with errors.  Also,
  generate random text to archive, and use 0 for group+other permission
  bits (to avoid world writable results on an error).
Revert "Adding link to prior versions of the docs."

Instead, add links to the web pages.

This reverts commit 87a5280b13f7092f730145028fcbdea8a8cc5519.

Conflicts:
	collects/scribblings/main/config.rkt
Add links to old documentations.

* The all-versions page has a docs column with html/pdf links, and also
  two links in the nightly builds footer.

* Specific version download pages have a link to the docs for that
  version.  (Only html, to save space.)
more 2d lexer repairs
add port-count-lines? to the lexer contract
traditional chinese string constants update, also from Chongkai Zhu