I/O event loop implementations

currently support Linux, MacOs and Windows
