All IO events are pooled, and some refactoring

IO events which were (for some reason) handled on the initializer thread
are now pooled along with the write events
Wraps connection handler interface

Default connection handler implementation which does the bare minimum.
Removes need to check whether a connection handler implementation was
set by the user.
Implement connection handler wrapper and added a finish connect handler
Remove pooling

Previous implementation was quite inadequate. Removed all pooling and
threading except for the main selector thread.