REORG: stream_interface: create a struct sock_ops to hold socket operations

These operators are used regardless of the socket protocol family. Move
them to a "sock_ops" struct. ->read and ->write have been moved there too
as they have no reason to remain at the protocol level.
diff --git a/src/proto_http.c b/src/proto_http.c
index 0fffad4..2c1ff56 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -803,8 +803,8 @@
 	}
 
 	/* prepare to return without error. */
-	si->shutr(si);
-	si->shutw(si);
+	si->sock.shutr(si);
+	si->sock.shutw(si);
 	si->err_type = SI_ET_NONE;
 	si->err_loc  = NULL;
 	si->state    = SI_ST_CLO;
@@ -3713,8 +3713,8 @@
 	http_silent_debug(__LINE__, s);
 
 	s->req->cons->flags |= SI_FL_NOLINGER;
-	s->req->cons->shutr(s->req->cons);
-	s->req->cons->shutw(s->req->cons);
+	s->req->cons->sock.shutr(s->req->cons);
+	s->req->cons->sock.shutw(s->req->cons);
 
 	http_silent_debug(__LINE__, s);