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.
    type order struct {
        Order string `json:"order"`
    }
    return json.Marshal(map[string]Order{
        s.Field: {s.Order},
    })

?
That way you (and readers of the code) never have to worry about quoting issues.