Introduce an accept(2) wrapper Sock::Accept() and extend the usage of Sock in CConnman::ListenSocket and CreateNodeFromAcceptedSocket().
The aim of this change is to progress towards making all network code mockable.
> net: add new method Sock::Accept() that wraps accept()
>
> This will help to increase `Sock` usage and make more code mockable.
> net: use Sock in CConnman::ListenSocket
>
> Change `CConnman::ListenSocket` to use a pointer to `Sock` instead of a
> bare `SOCKET` and use `Sock::Accept()` instead of bare `accept()`. This
> will help mocking / testing / fuzzing more code.
> net: change CreateNodeFromAcceptedSocket() to take Sock
>
> Change `CConnman::CreateNodeFromAcceptedSocket()` to take a `Sock`
> argument instead of `SOCKET`.
>
> This makes the method mockable and also a little bit shorter as some
> `CloseSocket()` calls are removed (the socket will be closed
> automatically by the `Sock` destructor on early return).
This is a backport of [[https://github.com/bitcoin/bitcoin/pull/21879 | core#21879]]