Drops, buckets and river search

* Implemented searching (with pagination) of drops, buckets
and rivers. For drops, we first search the index then use the
IDs of the returned documents to fetch the drops from the DB.

* River and bucket searches are performed against the DB using the
LIKE comparison operator. Only publicly accessible buckets and/or
rivers are returned
Add search/ endpoint. Closes #7

* The search/ endpoint is exposed by the SearchController. It can be used
for searching buckets, rivers, users and drops. The supported search parameters
are: q - The search term
        type - Type of search (users, buckets, rivers, drops); drops is the default
        count - No. of results to return
        page - Search result page number

* Return a 404 if the search doesn't yield any result(s)