[Bug Fix] Fixed race condition in slave session.

Message queue is thread-unsafe by design: uncontrolled access to it from multiple threads results in undefined behavior. All chunks are guaranteed to be pushed from engine's thread, but `invoke` event is sent from session creator thread which differs from the previous one. Sometimes `chunk` event was followed by `invoke` event, which is bug.

Now message queue is synchronized explicitly.
Merge pull request #136 from 3Hren/master

[Bug Fix] Fixed race condition in slave session.
[General] Tiny tweaks.
[RPC] More support for extension protocols.

Added extension protocols support to dispatches, message queues and traversal.
[RPC] Prettifying.
[ASIO] Do not die on fd exhaustion.

Attaching a new client to an engine involves dup(2) call, which might end up returning an invalid
file descriptor if maximum open files limit is reached. Handle that situation gracefully.