MAJOR: acl: make use of the new argument parsing framework

The ACL parser now uses the argument parser to build a typed argument list.
Right now arguments are all strings and only one argument is supported since
this is what ACLs currently support.
diff --git a/src/frontend.c b/src/frontend.c
index c18cc66..ac6027c 100644
--- a/src/frontend.c
+++ b/src/frontend.c
@@ -506,16 +506,19 @@
 	return 1;
 }
 
-/* set temp integer to the number of connections per second reaching the frontend */
+/* set temp integer to the number of connections per second reaching the frontend.
+ * Accepts either 0 or 1 argument. Argument is a string, other types will cause
+ * an undefined behaviour.
+ */
 static int
 acl_fetch_fe_sess_rate(struct proxy *px, struct session *l4, void *l7, int dir,
                        struct acl_expr *expr, struct acl_test *test)
 {
 	test->flags = ACL_TEST_F_VOL_TEST;
-	if (expr->arg_len) {
+	if (expr->args) {
 		/* another proxy was designated, we must look for it */
 		for (px = proxy; px; px = px->next)
-			if ((px->cap & PR_CAP_FE) && !strcmp(px->id, expr->arg.str))
+			if ((px->cap & PR_CAP_FE) && !strcmp(px->id, expr->args->data.str.str))
 				break;
 	}
 	if (!px)
@@ -525,16 +528,19 @@
 	return 1;
 }
 
-/* set temp integer to the number of concurrent connections on the frontend */
+/* set temp integer to the number of concurrent connections on the frontend
+ * Accepts either 0 or 1 argument. Argument is a string, other types will cause
+ * an undefined behaviour.
+ */
 static int
 acl_fetch_fe_conn(struct proxy *px, struct session *l4, void *l7, int dir,
 		  struct acl_expr *expr, struct acl_test *test)
 {
 	test->flags = ACL_TEST_F_VOL_TEST;
-	if (expr->arg_len) {
+	if (expr->args) {
 		/* another proxy was designated, we must look for it */
 		for (px = proxy; px; px = px->next)
-			if ((px->cap & PR_CAP_FE) && !strcmp(px->id, expr->arg.str))
+			if ((px->cap & PR_CAP_FE) && !strcmp(px->id, expr->args->data.str.str))
 				break;
 	}
 	if (!px)