nbd: Use non-blocking pipe-to-self
Although unlikely, if a user scales up operations by increasing the
number of threads beyond the limits of what a pipe can buffer, then
attempting to write to the pipe-to-self could stall, while the lock is
held. Better is to use a non-blocking pipe-to-self, and ignore EAGAIN
failures (the pipe was full, but that still means poll will see POLLIN
thanks to some other thread, and we didn't need to kick after all), as
well as to drain the pipe without intervening polls if there is a
backlog.
Besides, https://cr.yp.to/docs/selfpipe.html is a fairly canonical
description of pipe-to-self, and mentions that it should be
"non-blocking, just in case". :)
Signed-off-by: Eric Blake <eblake@redhat.com>