TS-2187: use nonblock eventfd in EventNotify

1) Use nonblock eventfd, so that we can tolerate write() failed with
   errno EAGANIN – which is acceptable as the signal receiver will be
   notified eventually in this case.

2) After using nonblock eventfd, read() will not block in wait(). So
   I use epoll_wait() to implement block behavior, just like timedwait().

3) nonblock eventfd can fix a potential problem: if receiver didn't
   read() data immediately, senders might block in write().

Signed-off-by: Yunkai Zhang <qiushu.zyk@taobao.com>