Use limit strategy to correct handle limited associations in the dataset_associations plugin

This adapts the limit strategies used for filtering by associations
to the dataset_associations plugin.

This also fixes an issue with associations that require joins.
Previously, the receiving dataset was joined directly, but that
can break the query if the receiving dataset used an unqualified
identifier that was made ambiguous by the join.  Instead of joining
directly, a nested subselect is now used.