* Fix to make sure ctrl+c is honored during a want read/write case.
* Fix the firmware update example to properly synchronize publish and use a unique topic name.
* Improve multi-thread test message to use larger size (> tx but) and in test mode check for actual message.
* Improve remote test done logic.
* Only run GitHub CI for PR's, not local push.
* Properly set `WOLFMQTT_NO_EXTERNAL_BROKER_TESTS` for each test.
* Use cat for logs, not more.
* Add non-blocking support to multi-threaded example.
* Fixes for multi-threading with non-blocking. Message state needs to be tracked separately for read and write.
* Refactor of the ACK handling to release read lock during processing ACK.
* Fixed bug where the reset of the shared object was clearing state.
* Fix to only keep read locked if started reading packet.
* Fix to always build all examples (unless `--disable-examples` is set).
* Fix for `WOLFMQTT_USER_THREADING`.
ZD 12793
* Fix for posix thread not waiting on conditional signal count zero.
* Fix for `MqttClient_WaitType` and `SN_Client_WaitType` resetting `mms_stat` after the read unlocked.
* Cleanup for newlines (handled in PRINTF).
1) The client lock is needed earlier to protect the "reset the packet state".
2) The subscribe ack was using an unprotected pointer to response code list. Now it makes a copy of those codes.
3) Add protection to multi-thread example "stop" variable.
Thanks to Fatimah Aljaafari (@fatimahkj) for the report.
ZD 12379 and PR #198
raise NUM_PUB_TASKS in multithread.c back to 10.
add a mutex for MqttProps_Add() and MqttProps_Free(), and add MqttProps_Init() to init the mutex, now called from MqttClient_Init(). prop.type is now initialized to MQTT_PROP_TYPE_MAX by MqttProps_Add(), to avoid a race, and callers are not allowed to zero out a prop (they are, and were, returned by MqttProps_Add() already cleared).
API change: make MqttClient_PropsFree() return int, not void, so that mutex failure is reported to the caller.