BUG/MINOR: mux-h2: make it possible to set the error code on an already closed stream

When sending RST_STREAM in response to a frame delivered on an already
closed stream, we used not to be able to update the error code and
deliver an RST_STREAM with a wrong code (e.g. H2_ERR_CANCEL). Let's
always allow to update the code so that RST_STREAM is always sent
with the appropriate error code (most often H2_ERR_STREAM_CLOSED).

This should be backported to 1.9 and possibly to 1.8.
diff --git a/src/mux_h2.c b/src/mux_h2.c
index 6ec53e8..be30183 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -616,12 +616,15 @@
 	h2c->st0 = H2_CS_ERROR;
 }
 
-/* marks an error on the stream */
+/* marks an error on the stream. It may also update an already closed stream
+ * (e.g. to report an error after an RST was received).
+ */
 static inline __maybe_unused void h2s_error(struct h2s *h2s, enum h2_err err)
 {
-	if (h2s->id && h2s->st < H2_SS_ERROR) {
+	if (h2s->id && h2s->st != H2_SS_ERROR) {
 		h2s->errcode = err;
-		h2s->st = H2_SS_ERROR;
+		if (h2s->st < H2_SS_ERROR)
+			h2s->st = H2_SS_ERROR;
 		if (h2s->cs)
 			cs_set_error(h2s->cs);
 	}