A container for Socket, making it available to pass a null socket reference.
We use asynchronously active connect task to initialize socket,
and active start transfer task to run it.
We need to pass the socket reference, which is sometimes null
(before initialization).
This is a sane way to do it; a simple socket container.