Removed overly-verbose debug messages and added some comments.
Refined the reply instance to get it close to the ESL packet.
Removed the JSON parsing because it is not serializable. If
JSON is needed, another implementation must b found - or there
needs to be written a Read and Write method for the type.
Removed the client as part of the observer pattern. If the client
reference is needed, then it must be stored explicitly along with
the observer object.
Synchronized buffer for use in producer-consumer pattern.
A simpler version of the ESL client that has no internal tasking
magic - and is, thus, potentially easier to work with from the
outside when used in an already multi-tasking application.
Example on how to handle connect/disconnect and authentication
(plus failures).