REORG: listener: move the receiving FD to struct receiver

The listening socket is represented by its file descriptor, which is
generic to all receivers and not just listeners, so it must move to
the rx struct.

It's worth noting that in order to extend receivers and listeners to
other protocols such as QUIC, we'll need other handles than file
descriptors here, and that either a union or a cast to uintptr_t
will have to be used. This was not done yet and the field was
preserved under the name "fd" to avoid adding confusion.
diff --git a/src/proto_uxst.c b/src/proto_uxst.c
index 33768a1..9b5a28d 100644
--- a/src/proto_uxst.c
+++ b/src/proto_uxst.c
@@ -109,9 +109,8 @@
 	if (listener->state != LI_ASSIGNED)
 		return ERR_NONE; /* already bound */
 		
-	if (listener->fd == -1)
-		listener->fd = sock_find_compatible_fd(listener);
-
+	if (listener->rx.fd == -1)
+		listener->rx.fd = sock_find_compatible_fd(listener);
 	path = ((struct sockaddr_un *)&listener->rx.addr)->sun_path;
 
 	maxpathlen = MIN(MAXPATHLEN, sizeof(addr.sun_path));
@@ -121,7 +120,7 @@
 	 * to create a new socket. However we still want to set a few flags on
 	 * the socket.
 	 */
-	fd = listener->fd;
+	fd = listener->rx.fd;
 	ext = (fd >= 0);
 	if (ext)
 		goto fd_ready;
@@ -259,7 +258,7 @@
 		unlink(backname);
 
 	/* the socket is now listening */
-	listener->fd = fd;
+	listener->rx.fd = fd;
 	listener->state = LI_LISTEN;
 
 	fd_insert(fd, listener, listener->proto->accept,