refactor DuplicateChecking.squash.
narrow DuplicateChecking.squash interface to only accept records.

this allows us to remove a lot of code, and obviates the need for #reload statements.
extract DuplicateChecking::DuplicateFinder.
fix test to actually test what it claims to.
refactor DuplicateChecking::DuplicateFinder.
remove redundant and tightly-coupled duplicate-checking tests.
compose duplicate-checking query with Arel, not #find_by_sql.
clean up DuplicateChecking::DuplicateFinder some more.
extract DuplicateChecking::DuplicateSquasher.
improve DuplicateChecking::ClassMethods locality.
refactor DuplicateChecking::DuplicateSquasher.
refactor DuplicateSquasher to focus on squashing one duplicate at a time.
we don't need to pass the model around in the squasher.
sunspot requires this to be an actual boolean, not just truthy or falsey.
Merge pull request #126 from botandrose/refactor_duplicate_checking

Refactor DuplicateChecking