MINOR: muxes: Pass the context of the mux to destroy() instead of the connection

It is mandatory to handle mux upgrades, because during a mux upgrade, the
connection will be reassigned to another multiplexer. So when the old one is
destroyed, it does not own the connection anymore. Or in other words, conn->ctx
does not point to the old mux's context when its destroy() callback is
called. So we now rely on the multiplexer context do destroy it instead of the
connection.

In addition, h1_release() and h2_release() have also been updated in the same
way.
diff --git a/include/proto/session.h b/include/proto/session.h
index f1e33fa..2ff8e38 100644
--- a/include/proto/session.h
+++ b/include/proto/session.h
@@ -126,7 +126,7 @@
 		conn->owner = NULL;
 		if (!srv_add_to_idle_list(objt_server(conn->target), conn)) {
 			/* The server doesn't want it, let's kill the connection right away */
-			conn->mux->destroy(conn);
+			conn->mux->destroy(conn->ctx);
 			return -1;
 		} else
 			conn->flags &= ~CO_FL_SESS_IDLE;
diff --git a/include/types/connection.h b/include/types/connection.h
index af27d0c..ab1f8be 100644
--- a/include/types/connection.h
+++ b/include/types/connection.h
@@ -346,7 +346,7 @@
 	int (*unsubscribe)(struct conn_stream *cs, int event_type, void *param); /* Unsubscribe to events */
 	int (*avail_streams)(struct connection *conn); /* Returns the number of streams still available for a connection */
 	int (*used_streams)(struct connection *conn);  /* Returns the number of streams in use on a connection. */
-	void (*destroy)(struct connection *conn); /* Let the mux know one of its users left, so it may have to disappear */
+	void (*destroy)(void *ctx); /* Let the mux know one of its users left, so it may have to disappear */
 	void (*reset)(struct connection *conn); /* Reset the mux, because we're re-trying to connect */
 	const struct cs_info *(*get_cs_info)(struct conn_stream *cs); /* Return info on the specified conn_stream or NULL if not defined */
 	unsigned int flags;                           /* some flags characterizing the mux's capabilities (MX_FL_*) */