MINOR: protocol: move the global reuseport flag to the protocols

Some protocol support SO_REUSEPORT and others not. Some have such a
limitation in the kernel, and others in haproxy itself (e.g. sock_unix
cannot support multiple bindings since each one will unbind the previous
one). Also it's really protocol-dependent and not just family-dependent
because on Linux for some time it was supported for TCP and not UDP.

Let's move the definition to the protocols instead. Now it's preset in
tcp/udp/quic when SO_REUSEPORT is defined, and is otherwise left unset.
The enabled() config condition test validates IPv4 (generally sufficient),
and -dR / noreuseport all protocols at once.
diff --git a/src/proto_udp.c b/src/proto_udp.c
index 1fd92c7..54f87d0 100644
--- a/src/proto_udp.c
+++ b/src/proto_udp.c
@@ -74,6 +74,9 @@
 	.rx_unbind      = sock_unbind,
 	.receivers      = LIST_HEAD_INIT(proto_udp4.receivers),
 	.nb_receivers   = 0,
+#ifdef SO_REUSEPORT
+	.flags          = PROTO_F_REUSEPORT_SUPPORTED,
+#endif
 };
 
 INITCALL1(STG_REGISTER, protocol_register, &proto_udp4);
@@ -108,6 +111,9 @@
 	.rx_unbind      = sock_unbind,
 	.receivers      = LIST_HEAD_INIT(proto_udp6.receivers),
 	.nb_receivers   = 0,
+#ifdef SO_REUSEPORT
+	.flags          = PROTO_F_REUSEPORT_SUPPORTED,
+#endif
 };
 
 INITCALL1(STG_REGISTER, protocol_register, &proto_udp6);