fds: Make many fds nonblocking
Introduce iswouldblock to cope with POSIX not specifying which of
EAGAIN or EWOULDBLOCK you get). In various subsystems, make more fds
nonblocking and handle errors appropriately. Specifically:
* Logging self-pipe reading end.
* Signal self-pipe reading end.
* SLIP both ends. Fixing the writing end involves breaking out a new
function slip_write. We have to set these nonblocking after reading
the confiramation byte.
* tun's network interface fd.
In various of these we add code to handle EINTR, too.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>