Only use association reflections for filters

Edge Case:

Model.reflections typically only returns association reflections.
However, there is a case where it may return other reflections. For
instance, if a model uses the `compose_of` macro, the attribute for
which `composed_of` is called shows up as a reflection, despite not
being an association.

This makes sure that #default_association_filters will only return
association filters. It also cleans up the code a bit since we end
up working with an Array instead of a Hash.
Merge pull request #2539 from shekibobo/association-filter-fixup

Only use association reflections for filters