First version of a asynchat-based library
Added support for events

Two options when an event is received:
- a callback can be invoked from another thread
- the user poll the KB.events queue (thus the callback
  can be executed in the main thread, avoiding threading
  issues)