MAJOR: session: detach the connections from the stream interfaces

We will need to be able to switch server connections on a session and
to keep idle connections. In order to achieve this, the preliminary
requirement is that the connections can survive the session and be
detached from them.

Right now they're still allocated at exactly the same place, so when
there is a session, there are always 2 connections. We could soon
improve on this by allocating the outgoing connection only during a
connect().

This current patch touches a lot of code and intentionally does not
change any functionnality. Performance tests show no regression (even
a very minor improvement). The doc has not yet been updated.
diff --git a/src/connection.c b/src/connection.c
index 310e0da..9ccebbc 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -26,6 +26,15 @@
 #include <proto/ssl_sock.h>
 #endif
 
+struct pool_head *pool2_connection;
+
+/* perform minimal intializations, report 0 in case of error, 1 if OK. */
+int init_connection()
+{
+	pool2_connection = create_pool("connection", sizeof (struct connection), MEM_F_SHARED);
+	return pool2_connection != NULL;
+}
+
 /* I/O callback for fd-based connections. It calls the read/write handlers
  * provided by the connection's sock_ops, which must be valid. It returns 0.
  */