Add send_timeout option by default.
Generalize mqtt_client.
Pass common tests.
Update doc.