Ensure key exists before retransmit buffer update
Epoll getevents behavior update

The old implementation returned events to the user in arbirary order,
by iterating the hash table of descriptors with 'reportable' events.
After reading the kernel epoll source[1], events should actually be
returned in the order in which they became reportable. This commit adds
this functionality, as well as support for deleting watches lazily at
the time that event collection is attempted by the user.

[1]
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=blob;f=fs/eventpoll.c;h=9fec1836057a9298ad9f121afcea03c64388eb88;hb=HEAD