Don't delegate Reflection#chain to ThroughAssociation

We shouldn't be delegating chain to ThroughAssociation since the
only place that needs to call it is `target_scope`. Instead we
can call `reflecion.chain`.
Merge pull request #16396 from eileencodes/dont-delegate-chain-to-through-association

Don't delegate Reflection#chain to ThroughAssociation