simplify and extend the find-string method in text%

This implementation runs about 10% faster than the old when searching
for "λ" in (collection-file-path "unit.rkt" "drracket" "private"). It
is copied directly from the search search algorithm from Wikipedia
called Knuth-Morris-Pratt, but with a fancier version of get-char that
cooperates with text%'s snip interface for more efficient linear
scans of characters.

It also generalizes the previous one by supporting searching into
embedded text% objects inside editor-snip% objects

related to PR 14688
related to PR 14687
fix incorrect contact; closes PR 14798

please include in the 6.1.1 release
Use the scale when rendering svg

Thanks to Antonio Menezes Leitao for the change
meta/pkg-build: add an "about" page

Explain `raco test`, the `PLT_PKG_BUILD_SERVICE` environment variable,
and the "x86_64-linux-natipkg" platform.
meta/pkg-build: record start and end time for tests
fd write: accomodate non-partial writes to a non-full descriptor

If a write to a non-blocking descriptor fails, then try again
with fewer bytes, since nothing in the spec write() seems to
promise writing partial amounts. In particular, writing to
a FIFO no Mac OS X might fail even if there are a few bytes of
space; as it happens, the select() function seems to compensate
and claim that such a FIFO is full, but kqeueue() doesn't.
fd read and write: avoid redundant O_NONBLOCK flag setting
work around a kqueue bug(?) on Mac OS X

There seems to be a problem in kqueue() on Mac OS X for watching for
FIFO write availability, where adding a read event for the same FIFO
(at a different file descritor) can disable the write event.

Merge to v6.1.1
meta/pkg-build: edit the "about" page
make `read-line` interruptable on a primitive port

Closes PR 14800

Merge to v6.1.1
fix a contract example in the documentation

closes PR 14798 (the previous commit, 86017992ab, that
claimed to fix this PR is unrelated; sorry for that)

Please include in 6.1.1
Update libffi to 3.1

Update libffi to 3.1 to add support for new architectures.
libffi: restore some small patches

Also, revert file-permission changes.
Add deftech for fallback/default methods in docs
Move racket-mode to the top of suggested emacs modes.
Add pointer to Sublime Text support.
fix incorrect interpretation of 'eof in new find-string implementation
racket/file: add `make-parent-directory*`

Also, clarify behavior of `make-directory*` in the case of a relative
path when the current directory does not exist.
remove internal `sorted-dirlist` function

The result of `directory-list` is now sorted by default, so the
extra function is not needed.
compiler/zo-marshal: allow extflonum literals