Change parsing so unions aren't regular table expressions

It looks like both unions and joins are special in that they aren't regular
table expressions (e.g. they can't be surrounded with parens), so this change
makes the parsing closer to the way BigQuery appears to parse things.

This also makes it so table unions are n-ary instead of always binary, since
parsing that makes more sense, and it currently has better perf at evaluation
time.