BUG/MEDIUM: mworker: fix FD leak upon reload

We reintroduced some FDs leaking by using a poller and some listeners in
the master.

The master proxy needs to be stopped to avoid leaking its listeners, the
polling loop needs to be deinit, and the thread waker pipe need to be
closed too.

No backport needed.
diff --git a/src/haproxy.c b/src/haproxy.c
index b4e12f1..2c42a70 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -704,6 +704,7 @@
 	int next_argc = 0;
 	int j;
 	char *msg = NULL;
+	struct per_thread_deinit_fct *ptdf;
 
 	mworker_block_signals();
 #if defined(USE_SYSTEMD)
@@ -714,6 +715,18 @@
 
 	mworker_proc_list_to_env(); /* put the children description in the env */
 
+	/* during the reload we must ensure that every FDs that can't be
+	 * reuse (ie those that are not referenced in the proc_list)
+	 * are closed or they will leak. */
+
+	/* close the listeners FD */
+	mworker_cli_proxy_stop();
+	/* close the poller FD and the thread waker pipe FD */
+	list_for_each_entry(ptdf, &per_thread_deinit_list, list)
+		ptdf->fct();
+	if (fdtab)
+		deinit_pollers();
+
 	/* compute length  */
 	while (next_argv[next_argc])
 		next_argc++;