Simplify parsing of some call expressions

I had noticed that for some cases there was some unnecessary parsing when
we could infer that we have a binary operator from the token itself.

For <<, **, %, ^ and a few others, we can make an assumption that we have
an operator and turn it into a call expression without having to write
an additional rule for expressions, which slows down parsing and greatly
increases the difficulty of parsing some complicated expressions.
Semicolons are treated as line separators

More or less just ignored for now -- this becomes more interesting
when you want to define a method or class inline.