Multiplexed client mode (TCP/TLS/Unix and WS/WSS).
A single message connection is shared across all calls and
subscriptions. A background task splits reader from writer.
Bound on the WebSocket codec generic. With the ws feature it
requires JsonRpcWsCodec; otherwise it accepts any clonable type
(the codec is unused) so callers can pass JsonCodec unchanged.