Merge remote-tracking branch 'github/master'
Merge remote-tracking branch 'github/master'
Merge remote-tracking branch 'github/master'
Merge remote-tracking branch 'github/master'
Merge remote-tracking branch 'github/master'
Merge remote-tracking branch 'github/master'
Merge remote-tracking branch 'github/master'
Merge remote-tracking branch 'github/master'
Merge remote-tracking branch 'github/master'
Merge remote-tracking branch 'github/master'
Update the GroupJoinFinder to also find Foreign Keys used in joins. This
marks the TableSource of the child table with the information about the
foreign key used as part of the join. 

Also add tests to verify the system finds these joins correct. 

Note: The optimizer does nothing with this information at this time, it
just marks the source tables. The optimizer changes are for a later
time.
Remove dead code and bad comments.
Add more tests to cover the missing cases. 

Tweak the GroupJoinFinder to make the checks clearer.
Replace the HashSet with a LinkedHashSet to get a consistent ordering of
the foreign keys. This is needed because the test written for the
GroupJoinFinder the results rely upon a consistent order of FKs when it
updated the AST.
Add Many new tests, update old ones based on code changes.
Clean up findFKConditions() to make it more compact, and hopefully
clearer, about what is is checking for.
Add additional negative test as recommended. Update code to correctly
handle this case.
merge tjoneslo: Groupjoinfinder find fks

Merge pull request #1158 from tjoneslo/sql-layer/groupjoinfinder-find-fks
https://github.com/FoundationDB/sql-layer/pull/1158