Fix defines involving both literals and other defined macros.

We now store a list of tokens in our hash-table rather than a single
string. This lets us replace each macro in the value as necessary.

This code adds a link dependency on talloc which does exactly what we
want in terms of memory management for a parser.

The 3 tests added in the previous commit now pass.
diff --git a/glcpp.c b/glcpp.c
index d6c89df..fcdc4ed 100644
--- a/glcpp.c
+++ b/glcpp.c
@@ -23,17 +23,19 @@
 
 #include "glcpp.h"
 
+extern int yydebug;
+
 int
 main (void)
 {
-	glcpp_parser_t parser;
+	glcpp_parser_t *parser;
 	int ret;
 
-	glcpp_parser_init (&parser);
+	parser = glcpp_parser_create ();
 
-	ret = glcpp_parser_parse (&parser);
+	ret = glcpp_parser_parse (parser);
 
-	glcpp_parser_fini (&parser);
+	glcpp_parser_destroy (parser);
 
 	return ret;
 }