BUG/MEDIUM: listener: only enable a listening listener if needed

The test on listener->state == LI_LISTEN is not sufficient to decide
if we need to enable a listener. Indeed, there is a very special case
which is the inherited FD shared, which has to reflect the real socket
state even after the previous test, and as such needs to remain in
LI_LISTEN state. In this case we don't want a worker to start the
master's listener nor conversely. Let's add a specific test for this.
diff --git a/src/listener.c b/src/listener.c
index 1947fdb..7f038c4 100644
--- a/src/listener.c
+++ b/src/listener.c
@@ -257,7 +257,8 @@
 	if (listener->state == LI_LISTEN) {
 		BUG_ON(listener->rx.fd == -1);
 		if ((global.mode & (MODE_DAEMON | MODE_MWORKER)) &&
-		    !(proc_mask(listener->rx.settings->bind_proc) & pid_bit)) {
+		    (!!master != !!(listener->rx.flags & RX_F_MWORKER) ||
+		     !(proc_mask(listener->rx.settings->bind_proc) & pid_bit))) {
 			/* we don't want to enable this listener and don't
 			 * want any fd event to reach it.
 			 */