Add event filters

A simple working site typeahead filter for /events.
Could use visual tweaks. C.f. https://github.com/swcarpentry/admintool/issues/13
My 2p worth, please feel free to take it or leave it

I can see why a much shorter version of
```python
db.get_session().query(Site).filter(Site.fullname.like('%s%%' % value))
```
would be nice to have but I would actually be more inclined to the longer version here. Simply because the more verbose version says what is going on straight away. For instance, and this may be a misconception on my behalf, to me `find()` implies the equivalent of SQLAlchemy's `get()`, i.e. find a row where ID=XYZ (i.e. not a LIKE query). 

My suggestion would be to use [hybrid attributes](http://docs.sqlalchemy.org/en/rel_0_9/orm/extensions/hybrid.html?highlight=hybrid) on the models to create 'named filters', e.g. 
```python
class Site(Base):

    # ...

    @hybrid_method
    def named_like(self, search_term):
        return self.fullname.like('%s%%' % search_term)
```

Which will then allow us to do things like 
```python
db.get_session().query(Site).filter(Site.named_like('e'))
```

And if we decide to search by site `id` as well as `full_name` in the future, or rename any columns, we would just change insides of the `named_like` method.