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/src/connection.c b/src/connection.c
index 1eada2d..0abbe42 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -13,8 +13,7 @@
 #include <common/compat.h>
 #include <common/config.h>
 
-#include <types/connection.h>
-
+#include <proto/connection.h>
 #include <proto/proto_tcp.h>
 #include <proto/stream_interface.h>
 
@@ -49,7 +48,7 @@
 		__conn_sock_stop_both(conn);
 
 	if (fdtab[fd].ev & (FD_POLL_IN | FD_POLL_HUP | FD_POLL_ERR))
-		conn->data->read(conn);
+		conn->app_cb->recv(conn);
 
 	if (unlikely(conn->flags & CO_FL_ERROR))
 		goto leave;
@@ -61,7 +60,7 @@
 		goto process_handshake;
 
 	if (fdtab[fd].ev & (FD_POLL_OUT | FD_POLL_ERR))
-		conn->data->write(conn);
+		conn->app_cb->send(conn);
 
 	if (unlikely(conn->flags & CO_FL_ERROR))
 		goto leave;