implement similar lifecycle for socks sessions as for socks server

Similar ideas to:
https://github.com/uProxy/uproxy-networking/pull/137

A SOCKS session lives as long as its TCP connection and datachannel.
Is why rename to onceStopped? Isn't this the promise that happens once close is called? Maybe you'd like to rename close below to stop?