MINOR: mux-h2/htx: Support zero-copy when possible in h2_rcv_buf()

If the channel's buffer is empty and the message is small enough, we can swap
the H2S buffer with the channel one.
diff --git a/src/mux_h2.c b/src/mux_h2.c
index 0a7c8ea..ddaa751 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -5395,6 +5395,15 @@
 		ret = h2s_htx->data;
 		buf_htx = htx_from_buf(buf);
 
+		/* <buf> is empty and the message is small enough, swap the
+		 * buffers. */
+		if (htx_is_empty(buf_htx) && htx_used_space(h2s_htx) <= count) {
+			htx_to_buf(buf_htx, buf);
+			htx_to_buf(h2s_htx, &h2s->rxbuf);
+			b_xfer(buf, &h2s->rxbuf, b_data(&h2s->rxbuf));
+			goto end;
+		}
+
 		htx_xfer_blks(buf_htx, h2s_htx, count, HTX_BLK_EOM);
 
 		if (h2s_htx->flags & HTX_FL_PARSING_ERROR)