Fix busy loop in FdOutStream::flush()

This bug was introduced in c6df31db. A non-blocking socket that did
not have any more space would busy loop until the write succeeded.
Instead now it returns without any action, just as it did before
the bug was introduced.
diff --git a/common/rdr/FdOutStream.cxx b/common/rdr/FdOutStream.cxx
index e6d081a..29e864f 100644
--- a/common/rdr/FdOutStream.cxx
+++ b/common/rdr/FdOutStream.cxx
@@ -101,8 +101,13 @@
                              blocking? timeoutms : 0);
 
     // Timeout?
-    if ((n == 0) && blocking)
+    if (n == 0) {
+      // If non-blocking then we're done here
+      if (!blocking)
+        break;
+
       throw TimedOut();
+    }
 
     sentUpTo += n;
     offset += n;