MEDIUM: conn-stream: Add an endpoint structure in the conn-stream

Group the endpoint target of a conn-stream, its context and the associated
flags in a dedicated structure in the conn-stream. It is not inlined in the
conn-stream structure. There is a dedicated pool.

For now, there is no complexity. It is just an indirection to get the
endpoint or its context. But the purpose of this structure is to be able to
share a refcounted context between the mux and the conn-stream. This way, it
will be possible to preserve it when the mux is detached from the
conn-stream.
diff --git a/src/mux_quic.c b/src/mux_quic.c
index 08848ca..f61602f 100644
--- a/src/mux_quic.c
+++ b/src/mux_quic.c
@@ -1056,12 +1056,11 @@
 
 static void qc_detach(struct conn_stream *cs)
 {
-	struct qcs *qcs = cs->end;
+	struct qcs *qcs = __cs_mux(cs);
 	struct qcc *qcc = qcs->qcc;
 
 	TRACE_ENTER(QMUX_EV_STRM_END, qcc->conn, qcs);
 
-	cs->ctx = NULL;
 	qcs->cs = NULL;
 	--qcc->nb_cs;
 
@@ -1092,7 +1091,7 @@
 static size_t qc_rcv_buf(struct conn_stream *cs, struct buffer *buf,
                          size_t count, int flags)
 {
-	struct qcs *qcs = cs->end;
+	struct qcs *qcs = __cs_mux(cs);
 	struct htx *qcs_htx = NULL;
 	struct htx *cs_htx = NULL;
 	size_t ret = 0;
@@ -1160,7 +1159,7 @@
 static size_t qc_snd_buf(struct conn_stream *cs, struct buffer *buf,
                          size_t count, int flags)
 {
-	struct qcs *qcs = cs->end;
+	struct qcs *qcs = __cs_mux(cs);
 	size_t ret;
 
 	TRACE_ENTER(QMUX_EV_STRM_SEND, qcs->qcc->conn, qcs);
@@ -1180,7 +1179,7 @@
 static int qc_subscribe(struct conn_stream *cs, int event_type,
                         struct wait_event *es)
 {
-	return qcs_subscribe(cs->end, event_type, es);
+	return qcs_subscribe(__cs_mux(cs), event_type, es);
 }
 
 /* Called from the upper layer, to unsubscribe <es> from events <event_type>.
@@ -1189,7 +1188,7 @@
  */
 static int qc_unsubscribe(struct conn_stream *cs, int event_type, struct wait_event *es)
 {
-	struct qcs *qcs = cs->end;
+	struct qcs *qcs = __cs_mux(cs);
 
 	BUG_ON(event_type & ~(SUB_RETRY_SEND|SUB_RETRY_RECV));
 	BUG_ON(qcs->subs && qcs->subs != es);