MEDIUM: vars: Add a per-process scope for variables

Now it is possible to use variables attached to a process. The scope name is
'proc'. These variables are released only when HAProxy is stopped.

'tune.vars.proc-max-size' directive has been added to confiure the maximum
amount of memory used by "proc" variables. And because memory accounting is
hierachical for variables, memory for "proc" vars includes memory for "sess"
vars.
diff --git a/src/haproxy.c b/src/haproxy.c
index c40813b..728c8e5 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -109,6 +109,7 @@
 #include <proto/signal.h>
 #include <proto/task.h>
 #include <proto/dns.h>
+#include <proto/vars.h>
 
 #ifdef USE_OPENSSL
 #include <proto/ssl_sock.h>
@@ -734,6 +735,9 @@
 	/* Initialise lua. */
 	hlua_init();
 
+	/* Initialize process vars */
+	vars_init(&global.vars, SCOPE_PROC);
+
 	global.tune.options |= GTUNE_USE_SELECT;  /* select() is always available */
 #if defined(ENABLE_POLL)
 	global.tune.options |= GTUNE_USE_POLL;
@@ -1675,6 +1679,8 @@
 		free(wl);
 	}
 
+	vars_prune(&global.vars, NULL, NULL);
+
 	pool_destroy2(pool2_stream);
 	pool_destroy2(pool2_session);
 	pool_destroy2(pool2_connection);