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.
The results might be unpredictable/counter-intutive/explosive if k is not 'name'.