add waitfd support, generalize IO sleep_strategy code and use MSG_RING
This MR introduces the waitfd
support used to evaluate the waitfd
kernel interface for my master's thesis.
It generalizes the io_uring-based sleep strategy code by introducing the new AbstractIoSleepStrategy class containing most of the code needed for sleeping and notifications.
Additionally the MR uses the io_uring MSG_RING feature introduced in linux 5.18 greatly improving and simplifying the sleep code.