portforward: make the client-connection behaviour overrideable in subclasses

This makes it a bit easier to implement non-TCP proxies, similar to what socat can do. My particular use case is to proxy traffic from an incoming connection to an outgoing socks client connection (txsocksx provides this).