add (failing) tests for macro argument whitespace parsing
refactor Tokens a little, always return Tokens from Lexer.parse
Fix macro argument whitespace parsing