This cleans up some rough edges of the initial version.
1. Reconnect support introduces better handling of missing or misbehaving wall sockets.
2. Variable visibility for the internally used ble characteristics just give the reader a slight clue about their (un)importance for them.
3. Variable access was cleaned up to use the provided setter for cmd and payload.
4. Some spaghetti code got slightly more readable.
5. Finally, graceful handling of disconnects is now possible. This allows short lived scripts (e.g. home-assistant components) to access multiple sockets with the same BLE adapter.
This makes it possible to only open a short lived connection to the
physical SEM6000 socket. A few old artefacts referencing __reconnect do
still exist in the code.