Remove XEmacs portability layer and fix some FIXMEs

* slime.el (require): Don't require features active by default on
GNU emacs.
(slime-underline-color): Removed
(slime-error-face, slime-warning-face, slime-note-face): Don't use
`slime-underline-color'
(slime-map-alist): Removed it
(slime-indulge-pretty-colors): Removed it. Font locking done all
in one place.
(slime-rex, slime-start, sldb-in-face): Fix indentation.
(slime-recompute-modelines, slime-xemacs-recompute-modelines)
(slime-run-when-idle, minor-mode-alist)
(slime-minibuffer-respecting-message)
(slime-push-definition-stack, slime-pop-find-definition-stack):
(slime-recompile-bytecode, slime-safe-encoding-p)
(slime-connection-port, slime-xref-mode-map)
(define-slime-contrib): Remove XEmacs hacks.
(slime-define-channel-type, slime-define-channel-method)
(when-let, slime-define-keys, with-struct)
(slime-propertize-region, slime-with-rigid-indentation)
(slime-with-connection-buffer, slime-def-connection-var)
(slime-rex, slime-eval-async, slime-point-moves-p): Use`declare'
form for indentation.
(slime-connection): Use `slime-auto-start'.
(slime-auto-connect): Renamed to `slime-auto-start'. Provide
obsolete alias.
(slime-dispatch-event): Don't use `slime-recompute-modelines'
(slime-kill-all-buffers): Moved to contrib/slime-repl.el
(slime-compile-file-options): Make `defcustom'
(slime-file-name-merge-source-root)
(slime-highlight-differences-in-dirname): Don't use
`slime-split-string'
(slime-complete-delay-restoration,slime-setup-command-hooks): Use
`add-hook'
(slime-complete-restore-window-configuration)
(slime-xref-recompilation-cont): Add FIXME note.  note.
(slime-xref-mode-map): Don't use interactive lambdas in keymap.
(slime-xrefs): Rewrite to not use `slime-map-alist'
(sldb-debugged-continuations): Simplify.
Redesign and simplify some window-managing code in slime.el

* slime.el (slime-popup-restore-data): Delete it.
(slime-with-popup-buffer): Remove `mode' arg. Redesign.
(slime-make-popup-buffer,slime-init-popup-buffer)
(slime-display-popup-buffer, slime-close-popup-window)
(slime-save-local-variables): Remove these functions.
(slime-popup-buffer-mode-map): Define this existing map
separately.
(slime-popup-buffer-mode): Don't use :keymap arg.
(minor-mode-alist): Remove XEmacs hack
(slime-popup-buffer-quit-function): Remove it
(slime-popup-buffer-quit): Use `quit-window'
(slime-show-compilation-log, slime-edit-value-callback)
(slime-show-apropos, slime-with-xref-buffer)
(slime-create-macroexpansion-buffer, slime-list-threads)
(slime-list-connections, slime-inspector-buffer): Don't pass :mode
arg to `slime-with-popup-buffer'.
(slime-goto-note-in-compilation-log): Redesign and use `recenter'
instead of `slime-show-buffer-position'.
(slime-goto-next-xref): Don't use `slime-show-buffer-position'
(sldb-setup): Use just `pop-to-buffer'
(slime-show-buffer-position): Remove it.
(sldb-recenter-region): Remove it.
(slime-show-source-location): Use `select-window' and `recenter'.
(slime-saved-window-config): Removed.
(slime-inspector-quit): Don't use `slime-saved-window-config'
(slime-inspector-mode): Enters `slime-popup-buffer-mode' minor
mode.
(slime-inspector-mode-map): Bind `q' to `slime-inspector-quit'.
Improve window selection for popup buffers

Use Emacs 24.3's window-managing API to do less surprising choices
when popping up temporary SLIME buffers. This is innocuous on
previous Emacs versions.

* slime.el (slime-with-popup-buffer, sldb-setup): Use
`slime--find-good-window'.
(slime--mru-popup-window): New var.
(slime--find-good-window): New function.
(slime-popup-buffer-quit): Fix docstring.