Fix eq_sread timeouts

Per #268 and #237, actually return -FI_ETIMEDOUT upon eq_sread timeout.
Something about this isn't right, and I think it's the while().  Adding the if() statement effectively eliminates the while() loop from ever being true.  Maybe we should change fi_poll_fd() to return -ETIMEDOUT on timeout, -errno on failure, and 0 on success?