[BUG] http: memory leak with captures when using keep-alive

Hank A. Paulson reported a massive memory leak when using keep-alive
mode. The information he provided made it easy to find that captured
request and response headers were erased but not released when renewing
a request.
diff --git a/src/proto_http.c b/src/proto_http.c
index 12647df..9b9176c 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -6310,11 +6310,19 @@
 	if (fe->options2 & PR_O2_REQBUG_OK)
 		txn->req.err_pos = -1;            /* let buggy requests pass */
 
-	if (txn->req.cap)
+	if (txn->req.cap) {
+		struct cap_hdr *h;
+		for (h = fe->req_cap; h; h = h->next)
+			pool_free2(h->pool, txn->req.cap[h->index]);
 		memset(txn->req.cap, 0, fe->nb_req_cap * sizeof(void *));
+	}
 
-	if (txn->rsp.cap)
+	if (txn->rsp.cap) {
+		struct cap_hdr *h;
+		for (h = fe->rsp_cap; h; h = h->next)
+			pool_free2(h->pool, txn->rsp.cap[h->index]);
 		memset(txn->rsp.cap, 0, fe->nb_rsp_cap * sizeof(void *));
+	}
 
 	if (txn->hdr_idx.v)
 		hdr_idx_init(&txn->hdr_idx);