add PositionedToken abstract base class
add new PunctuationToken class and abandon CharacterToken
make TextToken inherit PositionedToken
make HotkeyToken and HotstringToken inherit PositionedToken
prefer PositionedToken.Position and Expression.Position over Lexer.Position
Add new ITokenStream interface and let Lexer implement it
ParseObjectAccess() - also avoid Lexer.Position
Replace Lexer by ITokenStream in most expression parsing methods
add an ArrayTokenStream class that implements ITokenStream
rework function definition parsing

If unsure if function call or definition, just read
the tokens, don't parse them. Save them in an Array-
TokenStream. After having decided, interpret them
properly according to the decision.
minor test case fix
store literal expression value in base class
Merge branch 'ITokenStream'