When a subscription is invalid, Chronik responds with the error in a separate message.
However, errors are currently encoded incorrectly (in a Error msg directly instead of wrapping it in a WsMsg as promised).
This fixes the encoding and also fixes a small bug in client.py where messages that fail to parse would simply be dropped; now their unparsed bytes are returned to tests have a more appropriate failure mode than simply timing out.