MEDIUM: vars: adds support of variables

This patch adds support of variables during the processing of each stream. The
variables scope can be set as 'session', 'transaction', 'request' or 'response'.
The variable type is the type returned by the assignment expression. The type
can change while the processing.

The allocated memory can be controlled for each scope and each request, and for
the global process.
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index 036191b..737a32e 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -1473,7 +1473,7 @@
 				return -1;
 		} else {
 			memprintf(err,
-			          "'%s %s' expects 'accept', 'close' or 'reject' in %s '%s' (got '%s')",
+			          "'%s %s' expects 'accept', 'close', 'reject' or 'set-var' in %s '%s' (got '%s')",
 			          args[0], args[1], proxy_type_str(curpx), curpx->id, args[arg]);
 			return -1;
 		}
@@ -1678,8 +1678,8 @@
 				return -1;
 		} else {
 			memprintf(err,
-			          "'%s %s' expects 'accept', 'reject', 'track-sc0' ... 'track-sc%d' "
-			          " in %s '%s' (got '%s')",
+			          "'%s %s' expects 'accept', 'reject', 'track-sc0' ... 'track-sc%d', "
+			          " or 'set-var' in %s '%s' (got '%s')",
 			          args[0], args[1], MAX_SESS_STKCTR-1, proxy_type_str(curpx),
 			          curpx->id, args[arg]);
 			return -1;