libvncclient: add hooks for custom socket I/O
This allows using libvncclient on any kind of custom transport, e.g. for TLS tunneling via a special TLS socket implementation. May be the function pointer / hook names can be improved to better reflect the actual purpose.
Am currently on vacation, can review end of July - how does this relate to / replace #234?
It's related partially only since it proposes changes to the RFB protocol for negotiating TLS. This PR is much more generic and not even TLS related, TLS is just a use case.
IIRC this is about generic tunneling, an example of how to make use of this would be super helpful.
I need a connect hook to negotiate with a proxy server before handing the connection to libvncclient. I rolled my own before seeing this one. The ConnectToRFBServer hook proposed here would meet my need.