Added search filter functions.

Added support in the elasticsearch DSL for the
filter functions defined in http://tinyurl.com/qzobc69
I think "marshalJSON" isn't a great name here - it gives no indication of how it's
different from json.Marshal.

marshalAttrVal? marshalJSONAttr? marshalJSONKeyVal?