CLEANUP: connection: split sock_ops into data_ops, app_cp and si_ops

Some parts of the sock_ops structure were only used by the stream
interface and have been moved into si_ops. Some of them were callbacks
to the stream interface from the connection and have been moved into
app_cp as they're the application seen from the connection (later,
health-checks will need to use them). The rest has moved to data_ops.

Normally at this point the connection could live without knowing about
stream interfaces at all.
diff --git a/include/types/server.h b/include/types/server.h
index 7a405fd..c952885 100644
--- a/include/types/server.h
+++ b/include/types/server.h
@@ -151,8 +151,7 @@
 	int bind_hdr_occ;			/* occurrence number of header above: >0 = from first, <0 = from end, 0=disabled */
 #endif
 	struct protocol *proto;	                /* server address protocol */
-	struct sock_ops *sock;                  /* server socket operations */
-	void *sock_init_arg;                    /* socket operations's opaque init argument if needed */
+	struct data_ops *data;                  /* data-layer operations */
 	unsigned down_time;			/* total time the server was down */
 	time_t last_change;			/* last time, when the state was changed */
 	struct timeval check_start;		/* last health check start time */