* Refactor BLE gateways:
-merge HM10 and ESP32 code
-publish sensor values with the other BLE device parameters to avoid MQTT multiple publication
-make uniform the case of mac adress id between HM10 and ESP32
-add the possibility to remove service data publishing either when sensors is recognised or not
-correct manufacturing data display
-merge process cleargrass methods
-check service data validity before processing
replace datastring with hex string handling, enable the direct use of an MQTT received hex signal w/o syntax change
correct a bug on protocol identification when the protocol is a derivative of another one and share a common name piece
* merge duplicate code into function setWorBMac
* rename setWorBMac to updateWorB
* add helper getDeviceByMac
* change updateWorB to use helper getDeviceByMac
* change isWhite to use helper getDeviceByMac
* change isBlack to use helper getDeviceByMac
* change isDiscovered to use helper getDeviceByMac
* eliminate duplicate devices walk for isWhite, isBlack and isDiscovered check
* fix a data corruption race between MQTTtoBT and discovery-functions
the ***Discovery functions every time create a new device unless this device is set to white-list before. as a result of this, the devices list contains the same mac multiple times with different flags
* eliminate duplicate devices walk for oneWhite check
because now we have a utility function 'createOrUpdateDevice' we can globally cache this as a single flag
* secure createOrUpdateDevice agains data races on multicore esp32
* fix the concept of the createOrUpdateDevice
c / c++ does not allow NULL as function parameter like modern languages
* use nkolban Semaphore helper class (already included and used from eos1d3/ESP32_BLE librarie)
this makes the semaphore handling more cleaner and readable
* merge duplicate code during createDiscovery into new helper createDiscoveryFromList
* replace excessive use of ZmqttDiscovery precompiler directive in ble advertised callbacks with dummy functions
for a better readability we can remove this because isDiscovered does not do a devices walk anymore
* fix build errors found by travis-ci
reduce gateway name
reduce parameters size
correct issue when using advanced config network
comment simple receiving per default (it is set in platformio.ini when necessary)
* Replace fixed allocation of json buffer
by a dynamic one, and simplify trace function of json objects
* differentiate the change depending on board memory size
to make it works with UNO
Rename set commands to config
correct json buffer size and gateway name
replace state to cmd
replace set by config
add restart and erase command
add unicity to gateway command switches
BLE devices shouldn't be child of the gateway
make the BTtoMQTT topic consistent with other definitions