Jsonrpc: support some JSONesque non-JSONRPC protocols, like DAP

* lisp/jsonrpc.el (jsonrpc-convert-to-endpoint)
(jsonrpc-convert-from-endpoint): New generics.
(jsonrpc-connection-send): Call jsonrpc-convert-to-endpoint.
Rework logging.
(jsonrpc-connection-receive): Call jsonrpc-convert-from-endpoint.
Rework logging. jsonrpc--reply with METHOD.
(jsonrpc--log-event): Take subtype.
(Version): Bump to 1.0.19

* test/lisp/progmodes/eglot-tests.el (eglot--sniffing): Adapt
to new protocol of jsonrpc--log-event.

* doc/lispref/text.texi (JSONRPC Overview): Rework.
1 job for master in 12 minutes and 59 seconds (queued for 5 seconds)
Status Job ID Name Coverage
  Normal
failed #78406
test-lisp-inotify

00:12:59

 
Name Stage Failure
failed
test-lisp-inotify Normal
Uploading artifacts for failed job
Uploading artifacts...
test-lisp-inotify-ea29a48d/: found 119 matching files and directories

Uploading artifacts as "archive" to coordinator... 201 Created
id=78406 responseStatus=201 Created token=s6bPhYzk
Uploading artifacts...
test-lisp-inotify-ea29a48d/junit-test-report.xml: found 1 matching files and directories

Uploading artifacts as "junit" to coordinator... 201 Created
id=78406 responseStatus=201 Created token=s6bPhYzk
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 2