MAJOR: conn-stream: Invert conn-stream endpoint and its context

This change is only significant for the multiplexer part. For the applets,
the context and the endpoint are the same. Thus, there is no much change. For
the multiplexer part, the connection was used to set the conn-stream
endpoint and the mux's stream was the context. But it is a bit strange
because once a mux is installed, it takes over the connection. In a
wonderful world, the connection should be totally hidden behind the mux. The
stream-interface and, in a lesser extent, the stream, still access the
connection because that was inherited from the pre-multiplexer era.

Now, the conn-stream endpoint is the mux's stream (an opaque entity for the
conn-stream) and the connection is the context. Dedicated functions have
been added to attached an applet or a mux to a conn-stream.
diff --git a/src/conn_stream.c b/src/conn_stream.c
index d2fd729..01541a5 100644
--- a/src/conn_stream.c
+++ b/src/conn_stream.c
@@ -43,33 +43,37 @@
 }
 
 
-/* Attaches a conn_stream to an endpoint and sets the endpoint ctx */
-void cs_attach_endp(struct conn_stream *cs, enum obj_type *endp, void *ctx)
+/* Attaches a conn_stream to an mux endpoint and sets the endpoint ctx */
+void cs_attach_endp_mux(struct conn_stream *cs, void *endp, void *ctx)
 {
-	struct connection *conn;
-	struct appctx *appctx;
+	struct connection *conn = ctx;
 
 	cs->end = endp;
 	cs->ctx = ctx;
-	if ((conn = objt_conn(endp)) != NULL) {
-		if (!conn->ctx)
-			conn->ctx = cs;
-		if (cs_strm(cs)) {
-			cs->si->ops = &si_conn_ops;
-			cs->data_cb = &si_conn_cb;
-		}
-		else if (cs_check(cs))
-			cs->data_cb = &check_conn_cb;
-		cs->flags |= CS_FL_ENDP_MUX;
+	if (!conn->ctx)
+		conn->ctx = cs;
+	if (cs_strm(cs)) {
+		cs->si->ops = &si_conn_ops;
+		cs->data_cb = &si_conn_cb;
 	}
-	else if ((appctx = objt_appctx(endp)) != NULL) {
-		appctx->owner = cs;
-		if (cs->si) {
-			cs->si->ops = &si_applet_ops;
-			cs->data_cb = NULL;
-		}
-		cs->flags |= CS_FL_ENDP_APP;
+	else if (cs_check(cs))
+		cs->data_cb = &check_conn_cb;
+	cs->flags |= CS_FL_ENDP_MUX;
+}
+
+/* Attaches a conn_stream to an applet endpoint and sets the endpoint ctx */
+void cs_attach_endp_app(struct conn_stream *cs, void *endp, void *ctx)
+{
+	struct appctx *appctx = endp;
+
+	cs->end = endp;
+	cs->ctx = ctx;
+	appctx->owner = cs;
+	if (cs->si) {
+		cs->si->ops = &si_applet_ops;
+		cs->data_cb = NULL;
 	}
+	cs->flags |= CS_FL_ENDP_APP;
 }
 
 /* Attaches a conn_stream to a app layer and sets the relevant callbacks */