Support a "shared listen" concept when multiple concurrent processes listen
on the same socket. The Coordinator is responsible for opening and caching
listening sockets, using comm_open_listener() parameters supplied by remote
callers. Sendmsg/recvmsg is used to shovel socket descriptors from Coordinator
to remote callers.
If SMP is not enabled, we call the local comm_open_listener() as usual but
return the results asynchronously to avoid making SMP/nonSMP special in
the caller code.