Expression refactoring

Move binary and unary operators to specialised parse nodes and simplify
GenerateExpression logic. More to come here but this is part of
removing TokenParseNode dependency.