BUG/MEDIUM: h1: Always try to receive more in h1_rcv_buf().

In h1_rcv_buf(), wake the h1c tasklet as long as we're not done reading the
request/response, and the h1c is not already subscribed for receiving. Now
that we no longer subscribe in h1_recv() if we managed to read data, we
rely on h1_rcv_buf() calling us again, but h1_process_input() may have
returned 0 if we only received part of the request, so we have to wake
the tasklet to be sure to get more data again.

(cherry picked from commit 02bac85bee664976f6dcecc424864e9fb99975be)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>

[Cf: Must be backported to 2.0 because of recent changes in the
splicing. Without this patch, if the splicing is disabled because nothing is
read and the pipe is empty, h1_rcv_buf() is called. Because there is nothing in
the input buf, nothing is transferred and H1 connection is not woken up,
freezing the connection.]
diff --git a/src/mux_h1.c b/src/mux_h1.c
index 0d22a44..6ad6750 100644
--- a/src/mux_h1.c
+++ b/src/mux_h1.c
@@ -2490,7 +2490,7 @@
 		if (h1m->state == H1_MSG_TUNNEL || (h1m->state == H1_MSG_DATA && h1m->curr_len))
 			h1s->flags |= H1S_F_BUF_FLUSH;
 	}
-	else if (ret > 0 || (h1s->flags & H1S_F_SPLICED_DATA)) {
+	else {
 		if (ret)
 			h1s->flags &= ~H1S_F_SPLICED_DATA;
 		if (!(h1c->wait_event.events & SUB_RETRY_RECV))