MINOR: h2/mux-h2: Add flags to notify the response is known to have no body

The H2 message flag H2_MSGF_BODYLESS_RSP is now used during the request or
the response parsing to notify the mux that, considering the parsed message,
the response is known to have no body. This happens during HEAD requests
parsing and during 204/304 responses parsing.

On the H2 multiplexer, the equivalent flag is set on H2 streams. Thus the
H2_SF_BODYLESS_RESP flag is set on a H2 stream if the H2_MSGF_BODYLESS_RSP
is found after a HEADERS frame parsing. Conversely, this flag is also set
when a HEADERS frame is emitted for HEAD requests and for 204/304 responses.

The H2_SF_BODYLESS_RESP flag will be used to ignore data payload from the
response but not the trailers.
diff --git a/src/h2.c b/src/h2.c
index 3ff4b4d..a4279d3 100644
--- a/src/h2.c
+++ b/src/h2.c
@@ -294,6 +294,8 @@
 		goto fail;
 
 	sl->info.req.meth = find_http_meth(phdr[H2_PHDR_IDX_METH].ptr, phdr[H2_PHDR_IDX_METH].len);
+	if (sl->info.req.meth == HTTP_METH_HEAD)
+		*msgf |= H2_MSGF_BODYLESS_RSP;
 	return sl;
  fail:
 	return NULL;
@@ -547,6 +549,8 @@
 	 * On 1xx responses there is no ES on the HEADERS frame but there is no
 	 * body. So remove the flag H2_MSGF_BODY and add H2_MSGF_RSP_1XX to
 	 * notify the decoder another HEADERS frame is expected.
+	 * 204/304 resposne have no body by definition. So remove the flag
+	 * H2_MSGF_BODY and set H2_MSGF_BODYLESS_RSP.
 	 */
 	if (status == 101)
 		goto fail;
@@ -554,6 +558,10 @@
 		*msgf |= H2_MSGF_RSP_1XX;
 		*msgf &= ~H2_MSGF_BODY;
 	}
+	else if (sl->info.res.status == 204 || sl->info.res.status == 304) {
+		*msgf &= ~H2_MSGF_BODY;
+		*msgf |= H2_MSGF_BODYLESS_RSP;
+	}
 
 	/* Set HTX start-line flags */
 	flags |= HTX_SL_F_VER_11;    // V2 in fact