correctly parse simple macros

identifiers can now hold expressions
refactored a 'codegenIdentifier' function, so various identifier types can codegen how they'd like
fixed libclang args