Test and refactor Event#search.

Test and refactor SQL search engine implementation of Event#search. This lays the groundwork for eventual object extraction.
I was running into issues translating `LOWER(field) LIKE '%keyword%'` into Arel. I'm actually still not sure how to do it, or if it can be done at all, for that matter! However, I figured out an alternate strategy that I'm pretty happy with. Check it out!

```ruby
query_conditions = query.split.inject(scope) do |query_conditions, keyword|
  like = "%#{keyword.downcase}%"
  query_conditions
    .where(['LOWER(events.title) LIKE ?', like])
    .where(['LOWER(events.description) LIKE ?', like])
    .where(['LOWER(events.url) LIKE ?', like])
    .where(['LOWER(tags.name) = ?', keyword])
end
scope = scope.where(query_conditions.where_values.join(' OR '))
```