[BUG] client timeout incorrectly rearmed while waiting for server

Client timeout could be refreshed in stream_sock_*, but this is
undesired when the timeout is already set to eternity. The effect
is that a session could still be aborted if client timeout was
smaller than server timeout. A second effect is that sessions
expired on the server side would expire with "cD" flags.

The fix consists in not updating it if it was not previously set.
A cleaner method might consist in updating the buffer timeout. This
is probably what will be done later when the state machines only
deal with the buffers.
diff --git a/src/stream_sock.c b/src/stream_sock.c
index 84bc2db..10688e9 100644
--- a/src/stream_sock.c
+++ b/src/stream_sock.c
@@ -217,7 +217,7 @@
 	 * have at least read something.
 	 */
 
-	if (b->flags & BF_PARTIAL_READ)
+	if (b->rex && b->flags & BF_PARTIAL_READ)
 		b->rex = tick_add_ifset(now_ms, b->rto);
 
  out_wakeup:
@@ -373,14 +373,14 @@
 	 * written something.
 	 */
 
-	if (b->flags & BF_PARTIAL_WRITE) {
+	if (b->wex && b->flags & BF_PARTIAL_WRITE) {
 		b->wex = tick_add_ifset(now_ms, b->wto);
 		if (b->wex) {
 			/* FIXME: to prevent the client from expiring read timeouts during writes,
 			 * we refresh it. A solution would be to merge read+write timeouts into a
 			 * unique one, although that needs some study particularly on full-duplex
 			 * TCP connections. */
-			if (!(b->flags & BF_SHUTR_STATUS))
+			if (b->rex && !(b->flags & BF_SHUTR_STATUS))
 				b->rex = b->wex;
 		}
 	}