fix `regexp-match' variants given a long string and an output port

... again; commit d194fa6245 turned out to be incomplete.
dc<%>: fix baseline for slow-path non-combined text drawing

For example, fix baseline when drawing "a\u2144" with the
default fonr under Windows, where #\u2144 is subtituted from
another font.
racket/snip: make text snips accomodate height changes via substitution

Instead of assumning that the snip's text will match a font's height
metrics, check and remember the actual metrics if its doesn't match,
which accomodates font substitions (e.g., when using #\u2144 under
Windows).
new-style contract errors for `exn' field guards
racket/gui: add doc cross-reference
racket/gui/base: fix `menu-bar%' `get-frame' to return 'root

Return 'root istead of exposing the (hidden) root frame for
a menu bar that is shown when no frames are visible.