BUILD: connection: move list_mux_proto() to connection.c

No idea why this was put inlined into connection.h, it's used only once
for haproxy -vv, and requires tools.h, causing an undesired dependency
from connection.h. Let's move it to connection.c instead where it ought
to have been.
diff --git a/src/connection.c b/src/connection.c
index 3e3fb00..73a326d 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -987,6 +987,53 @@
 	return 0;
 }
 
+/* Lists the known proto mux on <out> */
+void list_mux_proto(FILE *out)
+{
+	struct mux_proto_list *item;
+	struct buffer *chk = get_trash_chunk();
+	struct ist proto;
+	char *mode, *side;
+
+	fprintf(out, "Available multiplexer protocols :\n"
+		"(protocols marked as <default> cannot be specified using 'proto' keyword)\n");
+	list_for_each_entry(item, &mux_proto_list.list, list) {
+		proto = item->token;
+
+		if (item->mode == PROTO_MODE_ANY)
+			mode = "TCP|HTTP";
+		else if (item->mode == PROTO_MODE_TCP)
+			mode = "TCP";
+		else if (item->mode == PROTO_MODE_HTTP)
+			mode = "HTTP";
+		else
+			mode = "NONE";
+
+		if (item->side == PROTO_SIDE_BOTH)
+			side = "FE|BE";
+		else if (item->side == PROTO_SIDE_FE)
+			side = "FE";
+		else if (item->side == PROTO_SIDE_BE)
+			side = "BE";
+		else
+			side = "NONE";
+
+		chunk_reset(chk);
+		if (item->mux->flags & MX_FL_HTX)
+			chunk_strcpy(chk, "HTX");
+		if (item->mux->flags & MX_FL_CLEAN_ABRT)
+			chunk_appendf(chk, "%sCLEAN_ABRT", (b_data(chk) ? "|": ""));
+		if (item->mux->flags & MX_FL_HOL_RISK)
+			chunk_appendf(chk, "%sHOL_RISK", (b_data(chk) ? "|": ""));
+		if (item->mux->flags & MX_FL_NO_UPG)
+			chunk_appendf(chk, "%sNO_UPG", (b_data(chk) ? "|": ""));
+
+		fprintf(out, " %15s : mode=%-10s side=%-8s  mux=%-8s flags=%.*s\n",
+			(proto.len ? proto.ptr : "<default>"), mode, side, item->mux->name,
+			(int)b_data(chk), b_orig(chk));
+	}
+}
+
 /* Note: <remote> is explicitly allowed to be NULL */
 int make_proxy_line(char *buf, int buf_len, struct server *srv, struct connection *remote, struct stream *strm)
 {