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.
Add ORM-specific loaders:
- lib\active_admin\orm\active_record
- lib\active_admin\orm\mongoid

Move comments to ActiveRecord ORM directory

Add ActiveRecord/Mongoid type checks to DisplayHelper#pretty_format(object) method
DisplayHelper#pretty_format fix indentation, remove nested if/else from case statement
Merge pull request #2545 from johnnyshields/orm-agnosticism

Make ActiveAdmin ORM agnostic (i.e. works without loading ActiveRecord)
Merge pull request #2539 from shekibobo/association-filter-fixup

Only use association reflections for filters
Support select filters for has_many :through
Support check boxes filters for has_many :through
Merge pull request #2541 from shekibobo/filters-has-many-through

Automatically build has_many :through filters.
update CONTRIBUTING.md
update database_cleaner

closes #2388