MEDIUM: lua: Add `ifexist` parameter to `set_var`

As discussed in GitHub issue #624 Lua scripts should not use
variables that are never going to be read, because the memory
for variable names is never going to be freed.

Add an optional `ifexist` parameter to the `set_var` function
that allows a Lua developer to set variables that are going to
be ignored if the variable name was not used elsewhere before.

Usually this mean that there is no `var()` sample fetch for the
variable in question within the configuration.
diff --git a/reg-tests/lua/set_var.vtc b/reg-tests/lua/set_var.vtc
index 2f1ba4e..5d37fcb 100644
--- a/reg-tests/lua/set_var.vtc
+++ b/reg-tests/lua/set_var.vtc
@@ -13,11 +13,20 @@
         bind "fd@${fe1}"
 
         http-request use-service lua.set_var
+
+    frontend fe2
+        mode http
+        ${no-htx} option http-use-htx
+        bind "fd@${fe2}"
+
+        http-request set-header Dummy %[var(txn.fe2_foo)]
+
+        http-request use-service lua.set_var_ifexist
 } -start
 
 client c0 -connect ${h1_fe1_sock} {
     txreq -url "/" \
-        -hdr "Var: txn.foo"
+        -hdr "Var: txn.fe1_foo"
     rxresp
     expect resp.status == 202
     expect resp.http.echo == "value"
@@ -27,3 +36,16 @@
     expect resp.status == 400
     expect resp.http.echo == "(nil)"
 } -run
+
+client c1 -connect ${h1_fe2_sock} {
+    txreq -url "/" \
+        -hdr "Var: txn.fe2_foo"
+    rxresp
+    expect resp.status == 202
+    expect resp.http.echo == "value"
+    txreq -url "/" \
+        -hdr "Var: txn.fe2_bar"
+    rxresp
+    expect resp.status == 400
+    expect resp.http.echo == "(nil)"
+} -run