In fact, we cannot send multiple commands and read them through the pipe. It has
caused multiple weird issues in the past but I can now see clearly how it should
be done. We should send commands and serialize all requests pending to let them
being sent one by one, after reply for the previous command has been received.
[Rework] Timeouts are now global per event and not reseted by IO activity
This actually reproduces old libevent behaviour and it was changed by a big design mistake.
We really want IO timeouts to be fired for the whole set of subsequent events, otherwise it should be
designed in a more configurable way...