Remove duplicate columns for JOIN USING

All the logic was apparently there, but we were removing the evidence
that there was ever a using clause, so it didn't happen
Added unit test sql for bindings
Added expected files
Improved a couple tests, and updated expected
Updated object ids based on actual output
Ignore trailing whitespace in tree diff
updated select-14h aisbinding test to be correct

the expected output was wrong
A couple more tests for join using
Changed runtime exception message to TODO...

Just to make sure I don't miss it later
Added test with USING(X,Y)
Keep track of the table/columns to not bind to

when there is an unqualified column reference (e.g. columnName as
opposed to table.columnName), and there's a using clause, don't
look at the table/column that was rejected by the using clause, i.e.
on t1 join t2 using (x), WHERE x = 1, will not bind consider
binding to t2.x
Added exception type for unsupported FullOuterJoin

It crashed anyways, now we're just explicit
Use right table of inner join

e.g. SELECT * FROM x RIGHT JOIN y USING(c) JOIN z USING(c)
compares y.c with z.c, not x.c with z.c in the second using
Added expected for named SELECT departmentid
Handle USING(x,y)

you can have two using columns, now there's a test and handling
renamed join-using test resources

seemed better than select-14 through select-14m
Updated README with new AISBinder tests
Added tests for subquery referencing USING column
Made yaml tests cover more code
Correctly get column bindings from join node

you don't always want to follow the JOIN TYPE, if not looking for
a USING column. Instead use the ignoreColumn structure in bindingContext