Rename `{take,drop}-while' -> `{take,drop}f'.

Also, improve the tests a little.
Clean up source layout.
Shuffle code for a more logical order.
Added `splitf-at', `takef-right', `dropf-right', `splitf-at-right', and more.

* See comment about implementation issues.

* Removed the `list?' requirement on `takef' etc -- so it matches the
  non-*f versions.  (IMO, it'd be better to drop it from all of them.)
  This also changes the output of `dropf' to `any/c'.

* Swapped the argument order so the predicate is last -- this makes it
  uniform with the non-f* versions.  (IMO, it'b be better to use the
  popular order in all of them instead.)

* Includes tests, and also improved version of previous tests.

* Includes docs, and also fixes to previous docs (eg, drop* doesn't
  return a fresh list).
Move the `define-inline' tests to "tests/racket/optimize.rktl".

Avoids a bad dependency.
Actually swap the argument order.

(This was supposed to be included with the other commit.)
adjust plai's gc2 language to use roots as the arguments
to gc:cons and gc:closure instead of passing locs

This enables the important change, namely that get-root-set
no longer returns roots corresponding to the arguments
of the allocation function that we're in the middle of.

This means that a common error students have (forgetting
to chase the 'hd' and 'tl' pointers in their GC) is
harder to make now, since get-root-set never contains
those locations as roots. (In the past you would have had
to write some pretty non-obvious mutator program to get
that behavior.)
Minor sha1 doc fixes
Fix identifier typo
Doc fixes for takef & friends
fix two bugs in recent plai commit
oops

(and the bigger mystery is why this didn't signal
an error when I ran the tests)
slideshow: fix bug related to `interactive'

The viewer didn't remove interactives correctly.
doc repair
Work around bug in QNX readlink

QNX readlink null-terminates its result and adds the termination
to the len-result. Fix by decrementing len if needed.
readline: explicitly load "libncurses"

Needed for OpenBSD
adjust xmethod macro to yield a more helpful error message
extend the lexer <-> framework's color:text api
to let lexers say "call me again before you change the buffer"

also, use this in the 2d lexer
missed some changes related to addition of dont-care values
in the lexers
Two doc typos.

Closes PR 13590.
Closes PR 13591.