racket/gui cocoa: use CGLayer for canvas bitmaps

The backing bitmap for a canvas is created as a CGLayer, which can
make screen refresh much faster. Also, calling the `make-bitmap` method
of `canvas%` produces a CGLayer-based bitmap, so drawing those bitmaps
to a fast context can be fast.

The improvement particularly helps with Retina displays, making
DrRacket more responsive and increasing the potential frame rate
of Slideshow.
(cherry picked from commit 9cb646bbd23221161ac7e0002b95937e4064e926)
racket/gui cocoa: repair for canvas creation in hidden top-level window

Fixes 9cb646bbd2 for the case that a frame or dialog is shown,
then hidden, then a new canvas is created or a new compatible
bitmap is requested via the `make-bitmap` method.

The test for this change is just the "windowing.rktl" test, which I
forgot to run before (as opposed to the drawing test suite).
(cherry picked from commit d234c0c2e30e7ed0c649f8bcf2577e23865304c3)
racket/gui cocoa: fix flipped drawing for `combo-field%` content

This was another bug in 9cb646bbd2.
(cherry picked from commit 991659a9e3ccc2594a6e72df372b741998df7a88)
use localStorage for user-doc redirect

Chrome doesn't allow cookies for local files, so try
localStorage (and fall back to cookies where localStorage
is unavailable)
(cherry picked from commit 2312e3b9e6feb4427f582a9a4c6132a8d67cb8f1)
doc search & redirect: user as an extension of main

When rendering the user documentation-search page or
local-redirect page, only user-specific documentation is
included, which makes rendering faster and automatically
picks up any installation-scope additions.

The documentation start page is still static, so the
user version doesn't pick up installation-scope
additions in the same way.

Related to PR 14180
(cherry picked from commit 7bba67d107c8e12e6339b1d851bff3e3db100b85)