Now we have
- WebSocketError: a stripped-down tungstenite::Error,
with one extra case ChannelIdleTooLong
- WebSocketConnectError: a WebSocketError or a TransportConnectError
- WebSocketServiceConnectError: an explicit rejection from a service,
or a WebSocketConnectError