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.