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`.