[http] HttpWorker: replacing locking message queue with The lock-free Queue.
[base] added support for multi accept().

When compiled with -DWITH_MULTI_ACCEPT=ON, you can pass multi_accept
option to a listener (e.g. listen and ssl.listen) with the number
of maximum attempts to accept() an incoming connection (defaults to 1).
If the accept() syscall returns EAGAIN the multi-accept loop will
be left early.

This change should help performance on servers with very high number
of incoming connections per second.

WITH_MULTI_ACCEPT defaults to OFF.
[http] HttpConnection: added support for opportunistic write()'s.

This enables support for opportunistic writes of the HTTP response
message to the client, that is, if enabled at compile-time via
-DWITH_OPPORTUNISTIC_WRITE=ON, then it is always first attempted
to transmit the response message (chunk) directly to the client,
ideally writing everything, but if it would block, then the write
will be delayed until a non-blocking write() to the client's socket
can be guaranteed.

WITH_OPPORTUNISTIC_WRITE defaults to OFF.
[http] HttpConnection: fixes bug with opportunistic write and TCP_DEFER_ACCEPT enabled at the same time.

When TCP_DEFER_ACCEPT and opportunistic writes are enabled at compile
time, it may happen that the whole request processing can be done
in a non-blocking manner - regarding accept() + read() + write().

However, when this happens, the next request (e.g. when keep-alived)
has not been processed because nobody told the client socket to watch
for new input, which is now fixed by emulating the ev::READ event
within the start() call instead of directly and just calling readSome().