AsyncMessenger: a trivial refactory and a fix

haomai, i am not sure you got a chance to read my note. but i think it could reveal a potential problem.

> BTW, i am looking at EpollDriver::event_wait(). shall we also notify the reader in case of EPOLLERR or EPOLLHUP, to let the AsyncConnection::fault() do the cleanup? otherwise, the reader could end up waiting for a never readable connection.