Extract Event::Search::Sql

Extract method object, and then refactor into small composable bits. This is the first step towards refactoring Event#search to use object composition and tell-don't-ask, rather than metaprogramming #search onto Event at boot. Subsequent PRs will put Venue#search under test and perform a similar extraction, and then focus on covering and extracting the Solr versions. In the end, Event#search and Venue#search will be simple methods that delegate to the proper search engine object, perhaps through an adapter class.