Merge branch 'extract_venue_search'
increase VenuesController test coverage to 100%.
test EventsController#squash_many_duplicates.
extract #squashes_many_duplicates specs into a shared example and include in venue controller spec.
static analysis tools are confused by assigning Structs to constants, so subclass instead.
Revert "Structs are awkward to namespace under."

This reverts commit 48c87e4f77a33b27f27e4cbc87b28f4c3c727a59.
Merge pull request #125 from botandrose/subclass_from_struct

Subclass from Struct.new
Merge pull request #124 from botandrose/test_squash_many_duplicates

Test #squash_many_duplicates on EventsController and VenuesController
Merge pull request #123 from botandrose/test_venue_controller

Increase VenuesController test coverage to 100%
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.