Make the lexer reentrant (to avoid "still reachable" memory).

This allows the final program to be 100% "valgrind clean", (freeing
all memory that it allocates). This will make it much easier to ensure
that any allocation that parser actions perform are also cleaned up.
diff --git a/glcpp.c b/glcpp.c
index 09641ce..90a0e89 100644
--- a/glcpp.c
+++ b/glcpp.c
@@ -24,5 +24,12 @@
 int
 main (void)
 {
-	return yyparse ();
+	int ret;
+	void *scanner;
+
+	yylex_init (&scanner);
+	ret = yyparse (scanner);
+	yylex_destroy (scanner);
+
+	return ret;
 }