racket/gui cocoa: fix `enable' on window whose ancestor is disabled
ffi/unsafe: allow a constant result for asynch use of a callback

A constant result for foreign-thread use of a callback allows a
callback to return without synchronizing with the Racket thread.
A constant result is thus useful when a callback's work can simply
be skipped if the callback is applied in the "wrong" OS thread.
ffi/unsafe/objc: remove `-A'/`+A', add `#:async-apply'

Another run at the problem 57516164de was meant to solve. The
new solution just gives up when a `drawRect:' method is called
in the wrong thread, which might create refresh glitches but
avoids a deadlock in the case that the Racket thread is blocked
on the update happening in the foreign thread.
setup/scribble: avoid top-level state
raco pkg: fix `--scope user' option
pkg/gui: first cut at a GUI package manager

For now, run it with `racket -l pkg/gui/main'. The expectation
is that DrRacket will start using this GUI.