REORG/MAJOR: extract "struct buffer" from "struct channel"

At the moment, the struct is still embedded into the struct channel, but
all the functions have been updated to use struct buffer only when possible,
otherwise struct channel. Some functions would likely need to be splitted
between a buffer-layer primitive and a channel-layer function.

Later the buffer should become a pointer in the struct buffer, but doing so
requires a few changes to the buffer allocation calls.
diff --git a/src/acl.c b/src/acl.c
index b4c5908..1680ac9 100644
--- a/src/acl.c
+++ b/src/acl.c
@@ -108,7 +108,7 @@
 		return 0;
 
 	smp->type = SMP_T_UINT;
-	smp->data.uint = l4->req->i;
+	smp->data.uint = l4->req->buf.i;
 	smp->flags = SMP_F_VOLATILE | SMP_F_MAY_CHANGE;
 	return 1;
 }
@@ -128,8 +128,8 @@
 
 	b = ((opt & SMP_OPT_DIR) == SMP_OPT_DIR_RES) ? l4->rep : l4->req;
 
-	bleft = b->i;
-	data = (const unsigned char *)b->p;
+	bleft = b->buf.i;
+	data = (const unsigned char *)b->buf.p;
 
 	if (!bleft)
 		goto too_short;
@@ -194,11 +194,11 @@
 		return 0;
 
 	msg_len = 0;
-	bleft = l4->req->i;
+	bleft = l4->req->buf.i;
 	if (!bleft)
 		goto too_short;
 
-	data = (const unsigned char *)l4->req->p;
+	data = (const unsigned char *)l4->req->buf.p;
 	if ((*data >= 0x14 && *data <= 0x17) || (*data == 0xFF)) {
 		/* SSLv3 header format */
 		if (bleft < 5)
@@ -266,8 +266,8 @@
 	 * all the part of the request which fits in a buffer is already
 	 * there.
 	 */
-	if (msg_len > buffer_max_len(l4->req) + l4->req->data - l4->req->p)
-		msg_len = buffer_max_len(l4->req) + l4->req->data - l4->req->p;
+	if (msg_len > buffer_max_len(l4->req) + l4->req->buf.data - l4->req->buf.p)
+		msg_len = buffer_max_len(l4->req) + l4->req->buf.data - l4->req->buf.p;
 
 	if (bleft < msg_len)
 		goto too_short;
@@ -332,8 +332,8 @@
 
 	b = ((opt & SMP_OPT_DIR) == SMP_OPT_DIR_RES) ? l4->rep : l4->req;
 
-	bleft = b->i;
-	data = (unsigned char *)b->p;
+	bleft = b->buf.i;
+	data = (unsigned char *)b->buf.p;
 
 	/* Check for SSL/TLS Handshake */
 	if (!bleft)