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.