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/include/haproxy/connection.h b/include/haproxy/connection.h
index b0b855e..aeef840 100644
--- a/include/haproxy/connection.h
+++ b/include/haproxy/connection.h
@@ -929,53 +929,7 @@
 	return NULL;
 }
 
-/* Lists the known proto mux on <out> */
-static inline 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));
-	}
-}
-
+void list_mux_proto(FILE *out);
 /* returns the first mux entry in the list matching the exact same <mux_proto>
  * and compatible with the <proto_side> (FE or BE) and the <proto_mode> (TCP or
  * HTTP). <mux_proto> can be empty. Will fall back to the first compatible mux
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)
 {