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.
So, I agree that would be nice.

Can you think of a way to do that and still have this function return `this.onceStopped_`?