tcp: Allow socket/syncache inheritance between SO_REUSEPORT listen sockets
This is intend to address the drawback of the following SO_REUSEPORT tcp
listen socket usage model:
Multiple processses create their own listen socket w/ SO_REUSEPORT, if
one of the process crashed, i.e. the listen socket is closed, then any
syncache, pending sockets on the completion and incompletion queues
are just dropped.
Compared w/ multiple processes sharing the same tcp listen socket, this
drawback could be unacceptable (e.g. when nginx reload configure).
This commit addresses this drawback by allowing another tcp listen socket
in the same local group, i.e. bound to the same listen port and address,
to inherit the syncache and pending sockets of the to-be-closed tcp
listen socket. The tcp listen socket, which inherits the syncache and
pending sockets, is the last tcp listen socket in the same local group.