Stablizes the client a bit more. Adds gevent timeouts to client operations.

- Adds NOP/ECHO to the client and tests the server before initializing.
- Adds timeouts all over the client
- Adds an embedded gevent Timeout inside the context manager of the lock.
  Initilaization arguments make it optional (on by default).
- Adds reply from server for NOP messages