Add basic preprocessor constant support

This uses the tokenizer and a simple, wannabe
expression "lexer" to extract expressions that
should be usable as primary values. Will definitely
need some tweaking. Among other things, I cheat by
assuming that identifiers will only be uppercase.