More preparatory work for multiple inspectors.

* sly.el (sly-open-inspector): Accept `serial' key.

* lib/lisp/swank.lisp
(defstruct connection): Add inspectors slot.
(drop-unprocessed-events): Fix compilation warning.
(defclass inspector): New class.
(*inspector-verbose*): Remove variable.
(find-inspector): New helper.
(istate): Rename METADATA-PLIST to METADATA. Remove NEXT and
PREVIOUS. Add SERIAL.
(*inspector*): New dynamically bound variable.
(current-inspector, current-istate): New function.
(ensure-istate-metadata): Delete unused function.
(emacs-inspect/istate): Remove helper.
(reset-inspector, inspect-object, prepare-title)
(inspector-nth-part, inspector-range, inspector-call-nth-action)
(inspector-pop, inspector-next, inspector-reinspect)
(inspector-toggle-verbose, inspector-history)
(describe-inspectee): Reimplement for new inspector mechanics.
(eval-for-inspector): Bind *INSPECTOR*.
Add multiple inspectors

* NEWS.md: Describe recently added features.

* sly.el (sly-completing-read): New function.
(sly-complete-symbol-function): New variable.
(sly-read-package-name, sly-read-interactive-args)
(sldb-invoke-restart-by-name, sly-read-connection)
(sly-read-contrib-name): Use `sly-completing-read'
(sly-dispatch-event): Use `sly--open-inspector'
(sly-eval-for-inspector): Tweak and add `inspector-name' arg.
(sly-read-inspector-name, sly-maybe-read-inspector-name): New
function,
(sly--open-inspector): Renamed from
`sly-open-inspector'. Considers inspector names.
(sly-inspector-reinspect): Take optional argument `inspector-name'

* lib/lisp/swank.lisp (ensure-istate-metadata): Resurrected.
(inspect-object): Be sure to make the istate first and only then
set its content.
(emacs-inspect :around): Set bindings for inspecting here.
(eval-for-inspector): Only bind *INSPECTOR* if some name is given.