MAJOR: http: move buffer->lr to http_msg->next

The buffer's pointer <lr> was only used by HTTP parsers which also use a
struct http_msg to keep track of the parser's state. We've reached a point
where it makes no sense to keep ->lr in the buffer, as the split between
buffer and msg is only arbitrary for historical reasons.

This change ensures that touching buffers will not impact HTTP messages
anymore, making the buffers more content-agnostic. However, it becomes
very important not to forget to update msg->next when some data get
forwarded or moved (and in general each time buf->p is updated).

The new pointer in http_msg becomes relative to buffer->p so that
parsing multiple messages becomes easier. It is possible that at one
point ->som and ->next will be merged.

Note: http_parse_reqline() and http_parse_stsline() have been temporarily
modified to know the message starting point in the buffer (->p).
diff --git a/include/proto/buffers.h b/include/proto/buffers.h
index 2b2b2ac..a95e5a1 100644
--- a/include/proto/buffers.h
+++ b/include/proto/buffers.h
@@ -62,7 +62,7 @@
 	buf->analysers = 0;
 	buf->cons = NULL;
 	buf->flags = BF_OUT_EMPTY;
-	buf->lr = buf->p = buf->data;
+	buf->p = buf->data;
 }
 
 /*****************************************************************/
@@ -317,7 +317,7 @@
 	buf->o = 0;
 	buf->i = 0;
 	buf->to_forward = 0;
-	buf->lr = buf->p = buf->data;
+	buf->p = buf->data;
 	buf->flags &= ~(BF_FULL | BF_OUT_EMPTY);
 	if (!buf->pipe)
 		buf->flags |= BF_OUT_EMPTY;
@@ -338,7 +338,6 @@
 		return;
 
 	buf->i = 0;
-	buf->lr = buf->p;
 	buf->flags &= ~BF_FULL;
 	if (buffer_len(buf) >= buffer_max_len(buf))
 		buf->flags |= BF_FULL;
@@ -442,7 +441,7 @@
 {
 	if (!(buf->i | buf->o)) {
 		/* let's realign the buffer to optimize I/O */
-		buf->p = buf->lr = buf->data;
+		buf->p = buf->data;
 	}
 	return buffer_contig_space(buf);
 }
@@ -457,7 +456,7 @@
 {
 	buf->o -= len;
 	if (buffer_len(buf) == 0)
-		buf->p = buf->lr = buf->data;
+		buf->p = buf->data;
 
 	if (buffer_len(buf) < buffer_max_len(buf))
 		buf->flags &= ~BF_FULL;