Build arel nodes properly for associations found on the fly

By constructing the table aliases again from the main join_dependency
object which can keep track of all joins
Build a association hash to keep track of their parents

Avoid building same associations twice, there was a time we could check
the parent in the JoinAssociation but theres no longer a parent accessor
there

first green build \o/\o/\o/\o\o/