Release v0.7.2

Signed-off-by: Stephen Brennan <stephen@brennan.io>
Allocate stacks using mmap()

This means there's a greater chance of catching a stack overflow by
faulting on the address, rather than simply overwriting other heap

Signed-off-by: Stephen Brennan <stephen@brennan.io>
rename task->orig_stack to task->stack

I don't know what's original about it.

Signed-off-by: Stephen Brennan <stephen@brennan.io>
Remove earlier bail-out for old FDs
Support accurate timeouts using a timerfd
Changes to reduce unnecessary epoll_ctl

First, add a generation number to each file descriptor, and allow users
to purge file descriptors since the previous generation. This allows
loops to avoid removing all file descriptors, only to re-arm them.

Second, bail out of sc_lwt_wait_fd() so that the "touch" doesn't even
need to hit a system call unless it changes things.
Fix epoll usage for more than 16 events
Run clang-format
Add sc-lwt documentation
Add functions to coordinate a safe shutdown among threads
Fix doc not installed issue
doc: Initial infrastructure

This framework is designed with the idea that it should eventually be a
drop-in addition to the sc-template. So the template configs are
mostly generic - although the doc meson.build file does have some
non-generic info.

In any case, this only gets the generation stuff working. There is no
real content included in this yet.
Add sc_lwt_populate_ready_fds, release 0.4.0