server selection: don't skip server state check when dealing with one server

omcache_command() used to skip calling ketama for server selection when we
only used a single server.  this unfortunately meant that we skipped the
whole server state validation that's done by the ketama lookup function.
server timeouts: improved dead timeout handling again

The previous behavior based on timestamps of successful write() and read()
calls did not really work, as it's quite possible that write() will
successfully send data somewhere even if the remote end never handles it and
responds to it.  Now dead timeout is handled differently: dead timeout is
set when the first write is attempted and updated when data is read from the
server until the last pending response has been received at which point it's
reset back to 0.
omcache: set CLOEXEC for sockets and use MSG_NOSIGNAL in send

This makes sure that fork + execed processes don't inherit our sockets, and
makes sure writes don't cause SIGPIPEs.