New: issue a warning if redefining a macro
New: stricter macro parameter parsing, beginning support for variadic macros
Use specific check for name after #undef

Removed unused cloneToken function.
New: variadic macros using ... as a macro parameter and __VA_ARGS__ in the body