BUG/MINOR: mux-quic: ensure to free all qcs on MUX release

Remove qcs instances left during qcc MUX release. This can happen when
the MUX is closed before the completion of all the transfers, such as on
a timeout or process termination.

This may free some memory leaks on the connection.
diff --git a/src/mux_quic.c b/src/mux_quic.c
index e68b362..40e26d6 100644
--- a/src/mux_quic.c
+++ b/src/mux_quic.c
@@ -475,6 +475,8 @@
 	TRACE_ENTER(QMUX_EV_QCC_END);
 
 	if (qcc) {
+		struct eb64_node *node;
+
 		/* The connection must be aattached to this mux to be released */
 		if (qcc->conn && qcc->conn->ctx == qcc)
 			conn = qcc->conn;
@@ -487,6 +489,14 @@
 		if (qcc->wait_event.tasklet)
 			tasklet_free(qcc->wait_event.tasklet);
 
+		/* liberate remaining qcs instances */
+		node = eb64_first(&qcc->streams_by_id);
+		while (node) {
+			struct qcs *qcs = eb64_entry(node, struct qcs, by_id);
+			node = eb64_next(node);
+			qcs_free(qcs);
+		}
+
 		pool_free(pool_head_qcc, qcc);
 	}