Use new token_list_t rather than string_list_t for macro values.

There's not yet any change in functionality here, (at least according
to the test suite). But we now have the option of specifying a type
for each string in the token list. This will allow us to finalize an
unexpanded macro name so that it won't be subjected to excess
expansion later.
diff --git a/glcpp.h b/glcpp.h
index ef821a7..c647e2a 100644
--- a/glcpp.h
+++ b/glcpp.h
@@ -42,8 +42,19 @@
 	string_node_t *tail;
 } string_list_t;
 
+typedef struct token_node {
+	int type;
+	const char *value;
+	struct token_node *next;
+} token_node_t;
+
+typedef struct token_list {
+	token_node_t *head;
+	token_node_t *tail;
+} token_list_t;
+
 typedef struct argument_node {
-	string_list_t *argument;
+	token_list_t *argument;
 	struct argument_node *next;
 } argument_node_t;
 
@@ -70,13 +81,13 @@
 	int is_function;
 	string_list_t *parameters;
 	const char *identifier;
-	string_list_t *replacements;
+	token_list_t *replacements;
 } macro_t;
 
 typedef struct expansion_node {
 	macro_t *macro;
 	argument_list_t *arguments;
-	string_node_t *replacements;
+	token_node_t *replacements;
 	struct expansion_node *next;
 } expansion_node_t;