This implements worker coroutines in Lua to perform non-blocking I/O and do many things concurrently.
For example a file watcher can be now implemented as:
local watcher = notify.opendir('/etc')
-- Watch changes to /etc/hosts
for flags, name in watcher:changes() do
for flag in notify.flags(flags) do
In order to make this work, the runtime uses the cqueues library which
can run coroutines concurrently, and return a file descriptor to poll on
if it's blocked. The worker takes that file descriptor and calls
`event.socket(pollfd, resume_callback)` so that libuv can wake up
the worker when its ready again.
The cqueues library is still optional, but if it's not present following stuff