Re-implement *GLOBALLY-REDIRECT-IO* in contrib/swank-mrepl.lisp

Some needed cleanup in swank-lisp. Switching redirection between
REPL's still shaky.

* swank.lisp (:swank): Don't export *RECORD-REPL-RESULTS*.
(multithreaded-connection): Adapt commentary.
(initialize-instance :after channel, initialize-instance :after
listener): Use NCONC to end, not PUSH. bb
(close-channel): Convert to method.
(with-default-listener): Use DEFAULT-LISTENER.
(default-listener): New function.
(close-channel :after listener): Close IN and OUT.
(defpackage #:swank-api): Add new exports.
(cleanup-connection-threads): Don't use stale slots.
(close-connection%): Close all channels.
(process-requests): Rework comment.

* contrib/swank-mrepl.lisp (create-mrepl): Call MAYBE-REDIRECT-GLOBAL-IO.
(make-mrepl-output-stream, make-mrepl-input-stream, set-mode)
(read-input): Rearrange in file.
(*globally-redirect-io*,*saved-global-streams*)
(setup-stream-indirection, prefixed-var)
(*standard-output-streams*)
(*standard-input-streams*, *standard-io-streams*)
(init-global-stream-redirection): ): Reinstated from
swank-repl.lisp
(globally-redirect-to-listener)
(*target-listener-for-redirection*)
(revert-global-io-redirection, maybe-redirect-global-io):
Rewritten from previous swank-mrepl.lisp.
(close-channel): New method.
(swank::drop-unprocessed-events): Rework comment.