Check for closed sockets before attempting a rpc

Ensure that the socket we've selected has been read from within a
second.  If it hasn't, check if it's closed by polling for readability
and if that works, MSG_PEEK'ing a single byte.  If we get eof, or an
error, we can assume it's broken.  This lets us avoid a large class of
transient network failures.
I wasn't crazy about a huge expanded diff just to indent the file.  I'll probably move away from that style (just move to the regular uncrustify output) at some point.  Wanted to skip it for this commit