MINOR: protocol: add a set of ctrl_init/ctrl_close methods for setup/teardown

Currnetly conn_ctrl_init() does an fd_insert() and conn_ctrl_close() does an
fd_delete(). These are the two only short-term obstacles against using a
non-fd handle to set up a connection. Let's have pur these into the protocol
layer, along with the other connection-level stuff so that the generic
connection code uses them instead. This will allow to define new ones for
other protocols (e.g. QUIC).

Since we only support regular sockets at the moment, the code was placed
into sock.c and shared with proto_tcp, proto_uxst and proto_sockpair.
diff --git a/src/proto_uxst.c b/src/proto_uxst.c
index 1714e10..1c6ea77 100644
--- a/src/proto_uxst.c
+++ b/src/proto_uxst.c
@@ -60,6 +60,8 @@
 	.unbind         = default_unbind_listener,
 	.suspend        = default_suspend_listener,
 	.accept_conn    = sock_accept_conn,
+	.ctrl_init      = sock_conn_ctrl_init,
+	.ctrl_close     = sock_conn_ctrl_close,
 	.connect        = uxst_connect_server,
 
 	/* binding layer */