Support macro invocations with multiple tokens for a single argument.

We provide for this by changing the value of the argument-list
production from a list of strings (string_list_t) to a new
data-structure that holds a list of lists of strings
(argument_list_t).
diff --git a/glcpp.h b/glcpp.h
index cee08fa..7966a2a 100644
--- a/glcpp.h
+++ b/glcpp.h
@@ -30,7 +30,6 @@
 
 /* Some data types used for parser value. */
 
-
 typedef struct string_node {
 	const char *str;
 	struct string_node *next;
@@ -41,6 +40,16 @@
 	string_node_t *tail;
 } string_list_t;
 
+typedef struct argument_node {
+	string_list_t *argument;
+	struct argument_node *next;
+} argument_node_t;
+
+typedef struct argument_list {
+	argument_node_t *head;
+	argument_node_t *tail;
+} argument_list_t;
+
 typedef struct glcpp_parser glcpp_parser_t;
 
 glcpp_parser_t *