Foreignkey use join

This is a purely internal refactoring to allow the ForeignKey class to use the Join class to manage the setting of the parent and child tables/columns list. 

This will be used for the FK Grouping update processing in a near future commit.