epoll: Reduce lock contetion in epoll_file::wake

I saw lock contention of _activity_lock in epoll_file::wake:

  Collected 30667 samples spanning 11.97 s

  2.73 s (100.00%, #15332) All
   lockfree::mutex::lock() /data/asias/osv/core/lfmutex.cc:87
   |-- 1.82 s (66.64%, #8153) lock_guard /data/asias/osv/external/x64/gcc.bin/usr/include/c++/4.8.2/mutex:414
   |    |-- 1.82 s (66.64%, #8151) lock_guard_for_with_lock /data/asias/osv/include/osv/mutex.h:75
   |    |    |-- 1.69 s (61.90%, #4200) epoll_file::wake(epoll_key) /data/asias/osv/core/epoll.cc:249
   |    |    |    |-- 1.68 s (61.51%, #4102) epoll_wake(epoll_ptr const&) /data/asias/osv/core/epoll.cc:362
   |    |    |    |    file::wake_epoll(int) /data/asias/osv/fs/vfs/kern_descrip.cc:177
   |    |    |    |    poll_wake /data/asias/osv/core/poll.cc:168

With this patch, the contention is gone.

Signed-off-by: Asias He <asias@cloudius-systems.com>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>