Fix global output redirection when no dedicated stream is used

Some multithread implementations like Allegro don't see special
variables like *EMACS-CONNECTION* in new spawned threads.

If *USE-DEDICATED-OUTPUT-STREAM* is nil, this results in a grey stream
whose function fails when called from these threads. Otherwise the
dedicated output socket works OK.

This is **not** a concurrency issue, since that is handled by
SEND-TO-EMACS fine.

Test case for Allegro CL, which should work either in the main or
secondary REPLs.

   (setq slynk-mrepl:*use-dedicated-output-stream* nil)
   (mp:process-run-function "yo" (lambda ()
      (loop repeat 5 do (princ "Hello, world") (terpri) (sleep 1))))

* contrib/slynk-mrepl.lisp (make-mrepl-output-stream): Use
SLYNK:MAKE-THREAD-BINDINGS-AWARE-LAMBDA.
(:slynk-mrepl): Export *USE-DEDICATED-OUTPUT-STREAM*,
*DEDICATED-OUTPUT-STREAM-PORT*, and
*DEDICATED-OUTPUT-STREAM-BUFFERING*

* slynk/slynk.lisp (make-thread-bindings-aware-lambda): New function.
(:slynk-api): Export MAKE-THREAD-BINDINGS-AWARE-LAMBDA.