MEDIUM: make SO_REUSEPORT configurable

With Linux officially introducing SO_REUSEPORT support in 3.9 and
its mainstream adoption we have seen more people running into strange
SO_REUSEPORT related issues (a process management issue turning into
hard to diagnose problems because the kernel load-balances between the
new and an obsolete haproxy instance).

Also some people simply want the guarantee that the bind fails when
the old process is still bound.

This change makes SO_REUSEPORT configurable, introducing the command
line argument "-dR" and the noreuseport configuration directive.

A backport to 1.6 should be considered.
diff --git a/src/haproxy.c b/src/haproxy.c
index 96ecd0d..b1c10b6 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -459,6 +459,9 @@
 #if defined(USE_GETADDRINFO)
 		"        -dG disables getaddrinfo() usage\n"
 #endif
+#if defined(SO_REUSEPORT)
+		"        -dR disables SO_REUSEPORT usage\n"
+#endif
 		"        -dV disables SSL verify on servers side\n"
 		"        -sf/-st [pid ]* finishes/terminates old pids.\n"
 		"\n",
@@ -726,6 +729,9 @@
 #if defined(USE_GETADDRINFO)
 	global.tune.options |= GTUNE_USE_GAI;
 #endif
+#if defined(SO_REUSEPORT)
+	global.tune.options |= GTUNE_USE_REUSEPORT;
+#endif
 
 	pid = getpid();
 	progname = *argv;
@@ -769,6 +775,10 @@
 			else if (*flag == 'd' && flag[1] == 'G')
 				global.tune.options &= ~GTUNE_USE_GAI;
 #endif
+#if defined(SO_REUSEPORT)
+			else if (*flag == 'd' && flag[1] == 'R')
+				global.tune.options &= ~GTUNE_USE_REUSEPORT;
+#endif
 			else if (*flag == 'd' && flag[1] == 'V')
 				global.ssl_server_verify = SSL_SERVER_VERIFY_NONE;
 			else if (*flag == 'V')