Add Search functionality to the API

This change includes functionality to parse the search API parameters, build a search DSL and perform the search against elasticsearch.
These logging messages seems a little excessive to me.
If we want to log HTTP request data, we can use debug.Handler.