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.
Should "entity" be moved to be a constant on StoreElasticSearch so it doesn't appear so many places?