Added state machine to ESL.Client instead of boolean flags.
New test for validating authentication fail and success.
More state machine work.
An extra task will take care of the dispatching, effectively
unlocking the main client, and enabling observers to make api call
to the client without risking a deadlock.
Added dispatcher tasks in the style of worker threads. 8 tasks are
started along with a new Stream Consumer.
Removed some overly-verbose traces.