MEDIUM: connection: use a generic data-layer init() callback

The generic data-layer init callback is now used after the transport
layer is complete and before calling the data layer recv/send callbacks.

This allows the session to switch from the embryonic session data layer
to the complete stream interface data layer, by making conn_session_complete()
the data layer's init callback.

It sill looks awkwards that the init() callback must be used opon error,
but except by adding yet another one, it does not seem to be mergeable
into another function (eg: it should probably not be merged with ->wake
to avoid unneeded calls during the handshake, though semantically that
would make sense).
diff --git a/include/proto/session.h b/include/proto/session.h
index b9eb447..049fc93 100644
--- a/include/proto/session.h
+++ b/include/proto/session.h
@@ -47,7 +47,6 @@
 			 int section_type, struct proxy *curpx,
 			 struct track_ctr_prm *prm,
 			 struct proxy *defpx, char **err);
-int conn_session_complete(struct connection *conn, int flag);
 
 /* Remove the refcount from the session to the tracked counters, and clear the
  * pointer to ensure this is only performed once. The caller is responsible for
diff --git a/include/types/connection.h b/include/types/connection.h
index ddc610e..60caa4d 100644
--- a/include/types/connection.h
+++ b/include/types/connection.h
@@ -86,7 +86,7 @@
 	/* below we have all handshake flags grouped into one */
 	CO_FL_HANDSHAKE     = CO_FL_SI_SEND_PROXY | CO_FL_SSL_WAIT_HS | CO_FL_ACCEPT_PROXY,
 
-	CO_FL_INIT_SESS     = 0x00000800,  /* initialize a session before using data */
+	CO_FL_INIT_DATA     = 0x00000800,  /* initialize the data layer before using it */
 
 	/* when any of these flags is set, polling is defined by socket-layer
 	 * operations, as opposed to data-layer. Transport is explicitly not