Enable boost::asio.
Remove skstream.
Use boost::asio for all io.

This initial commit lays the groundwork; there are much more things that
needs to be done. But atleast it compiles.
Bump version info.

The switch from skstream to boost::asio warrants a 1.4.0 version.
Removed Alarm since it's never worked.

The Alarm class has never worked, since it never registered itself.
Use the io_service for timed event.

We've done away with our own implementation of TimedEventService and
Timeout and instead use boost::asio::io_service.
The semantics of how the library is used is also slightly changed. You
must now create an instance of TimedEventService yourself at startup. We
probably want to change this so it's not a singleton; but for now this
will have to do.
Always signal when disconnecting.

I can't see any reason why we shouldn't signal.
Moved low level socket code to separate files.
Fixed tests.
Remove obsolete Poll code.
Refactor how events are handled.

We've introduced the Session class which is meant to hide away the
underlying boost::asio::io_service from clients using the code. The
TimedEventService is renamed EventService and designed to be a general
entry point for clients to interleave tasks into the main event loop.
Added methods for doing event loop handling.
Removed DeleteLater.

Deferred deletion is now handled through the EventService instead.
Fixed tests.
Use more aptly named method names.
Remove obsolete Poll.h.
Detach handlers from the io_service.

Instead handle them through a wait free queue. This has the advantage
that we're not reliant on calling poll in order to process handlers.
Use unordered map where suitable.

Mainly places where lookups are more common than iterations.
Don't replace buffer when doing negotiate write.

Since there's no risk of interleaved write when doing negotiate, and
that the buffer needs to stay the same for this phase, we'll use a write
method which doesn't replace the buffer.
Use shared_ptr for async sockets.

This allows us to better handle async callbacks. The connection to the
BaseConnection class is severed by a call to "detach".