Test and refactor Event#search.

Test and refactor SQL search engine implementation of Event#search. This lays the groundwork for eventual object extraction.
Maybe I'm not seeing it (just woke up :wink:) but can you explain why we can't use `Arel` because of the [`LOWER`](https://github.com/rails/arel/blob/dbe1f8b29a80bf07aa5df624f68b9de869c1f248/lib/arel/factory_methods.rb#L39-L41) wrapping?