server: threads support for libevent aio level

This implementation use pipe(2) to bypass commands to server threads,
this _command_ contain Request structure in it, with all needable
information to allow thread serve client request.
This implementation still have todos, but this will be done later I
think.

And you still can avoid creating extra threads by using -w0, this will
use only event loop in the main thread of boostcached.

And we need new graphs/benchs since 2 threads can be non-optimal with
this implementation (I already see some difference on graphs, but need
more time to summarize this).
server: turn on libevent debug mode with -vvvv and more
server: add more BUG() for libevent's stuff
server: use per-thread base for session objects (to avoid races)

Before this patch boostcached with particular options exited from main
event loop, even if we don't asked to.

Steps to reproduce:
  $ boostcached -w1 -vvv
  $ bc-benchmark -s .cmake/boostcached.sock

After benchmark finished server existed, without preparing to stop,
and appropriate message will be written (about routine is not
prepared for this).

I believe that this is because we use main base (created in the main
thread), in our routines, which are separate threads by it's nature.
And this is very bad, since it can harm event_base internals.

After this patch all seems to be okay, except that no response for first
request from server with -vvv, but with -vvvv we have a response. (Ugh.)
server: reduce size of structure that is passed over pipe(2) to routines

We don't need evconnlistenere already, since we have base in routine,
and that is enough.