ESP32BLEGattMesh is the NimBLE half of BLEGattMeshHandler, peripheral only.
One legacy connectable advertisement serves the phone and the mesh peers,
with the mesh-peer service UUID in its scan response as on the nRF52, and a
link becomes a mesh peer when it subscribes to the mesh characteristic.
Notifies go to one connection at a time so a relay skips the peer it came
from.
With the GATT peer protocol on, NimbleBluetooth registers every link from
onConnect, re-arms the advertisement while a connection slot is free, and
identifies the phone by phone-API use instead of by pairing, so a mesh peer
dropping no longer ends the phone's session. Security starts on demand
rather than on connect, so a mesh peer is never pushed into pairing; the
phone API keeps its attribute protection. deinit() disconnects every link
before freeing the server.
All of it is compiled only with HAS_BLE_GATT_MESH and inert unless the
BLE_GATT_PEER protocol bit is set.