Remove `with-struct`

* sly.el (with-struct): Removed.
(sly-compilation-finished): Don't use `with-struct'
(sly-maybe-show-compilation-log): Don't use `with-struct'
Move sly-tests.el to lib/sly-tests.el
Consolidate buffer names

* sly.el (sly-buffer-name): New implementation.
(sly-compose): New function.
(sly-process-available-input, sly-net-send): Pass process to
`sly-log-event'
(sly-handle-net-read-error): Pass process to `sly-buffer-name'
(sly-set-connection-info): Commit the final events buffer name
here.
(sly-dispatch-event): Pass connection to `sly-buffer-name'
(sly-log-event): Pass process to `sly-events-buffer'
(sly-events-buffer): Store the buffer as a process property.
(sly-list-threads, sly-with-xref-buffer, sly-show-apropos): Pass
connection to `sly-buffer-name'
(sldb-get-buffer): Use `sly-buffer-name'
(sly-update-threads-buffer): Takes new arg `buffer'
(sly--display-threads): Renamed from `sly-display-threads'
(sly-inspector-buffer): Pass connectino to `sly-buffer-name'
(sly-open-inspector): No need to set `sly-buffer-connection' here

* contrib/sly-autodoc.el (sly-autodoc--fontify-string): Adapt to new `sly-buffer-name'

* contrib/sly-mrepl.el (sly-mrepl--buffer-name): Use `sly-buffer-name'
(sly-mrepl--find-buffer): Find shortest named REPL.
(sly-mrepl): Pass connection to `sly-mrepl--find-create'
(sly-mrepl-pop-to-mrepl): No need to call `pop-to-buffer'
(sly-mrepl-new): Take `connection' and `handle' args. Prompt user
for REPL nickname.

* contrib/sly-trace-dialog.el (sly-trace-dialog--buffer-name): Use `sly-buffer-name'

* lib/sly-tests.el (sly-inspector-visible-p): Pass connection to `sly-buffer-name'