MAJOR: http: make http_msg->sol relative to buffer's origin

msg->sol is now a relative pointer just like all other ones. There is no
more absolute references to the buffer outside the struct buffer itself.

Next two cleanups should include removing buffer references to functions
which already have an msg, and removal of wrapping detection in request
and response parsing which cannot wrap by definition.
diff --git a/src/backend.c b/src/backend.c
index f2b564b..b4fa21d 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -340,7 +340,7 @@
 	ctx.idx = 0;
 
 	/* if the message is chunked, we skip the chunk size, but use the value as len */
-	http_find_header2(px->hh_name, plen, msg->sol, &txn->hdr_idx, &ctx);
+	http_find_header2(px->hh_name, plen, s->req->p + msg->sol, &txn->hdr_idx, &ctx);
 
 	/* if the header is not found or empty, let's fallback to round robin */
 	if (!ctx.idx || !ctx.vlen)
@@ -559,7 +559,7 @@
 				if (s->txn.req.msg_state < HTTP_MSG_BODY)
 					break;
 				srv = get_server_uh(s->be,
-						    s->txn.req.sol + s->txn.req.sl.rq.u,
+						    s->req->p + s->txn.req.sol + s->txn.req.sl.rq.u,
 						    s->txn.req.sl.rq.u_l);
 				break;
 
@@ -569,7 +569,7 @@
 					break;
 
 				srv = get_server_ph(s->be,
-						    s->txn.req.sol + s->txn.req.sl.rq.u,
+						    s->req->p + s->txn.req.sol + s->txn.req.sl.rq.u,
 						    s->txn.req.sl.rq.u_l);
 
 				if (!srv && s->txn.meth == HTTP_METH_POST)