Test and refactor Event#search.

Test and refactor SQL search engine implementation of Event#search. This lays the groundwork for eventual object extraction.
What about `opts.fetch(:limit, 50)` instead? I'm not a fan of using `||` for conditional value setting when a method exists that'll do what we want.