Implement #if and friends.

With this change, tests 41 through 49 all pass. (The defined operator
appears to be somehow broken so that test 50 doesn't pass yet.)
diff --git a/glcpp.h b/glcpp.h
index 21db918..36ab0e7 100644
--- a/glcpp.h
+++ b/glcpp.h
@@ -49,7 +49,7 @@
 
 typedef union YYSTYPE
 {
-	int ival;
+	intmax_t ival;
 	char *str;
 	string_list_t *string_list;
 	token_t *token;