BUG/MEDIUM: mworker: stop proxies which have no listener in the master

The previous code was only stopping the listeners in the master, not the
entire proxy.

Since we now have a polling loop in the master, there might be some side
effects, indeed some things that are still initialized. For example the
checks were still running.
diff --git a/src/haproxy.c b/src/haproxy.c
index 08ad7e5..f8fba14 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -623,6 +623,8 @@
 	}
 
 	for (curproxy = proxies_list; curproxy; curproxy = curproxy->next) {
+		int listen_in_master = 0;
+
 		list_for_each_entry_safe(l, l_next, &curproxy->conf.listeners, by_fe) {
 			/* remove the listener, but not those we need in the master... */
 			if (!(l->options & LI_O_MWORKER)) {
@@ -634,8 +636,13 @@
 				else
 					unbind_listener(l);
 				delete_listener(l);
+			} else {
+				listen_in_master = 1;
 			}
 		}
+		/* if the proxy shouldn't be in the master, we stop it */
+		if (!listen_in_master)
+			curproxy->state = PR_STSTOPPED;
 	}
 }