better paren tokenizing, to allow things like foo((1+2)), etc
added desugaring for binary operators, without well formedness checking, made the tokenizer handle parens adjacent to operators and other parens correctly (by caching tokens, instead of modifying the input port)