More Like This Query: Adds the ability to specify the analyzer used for each
field.

When using multiple items, the user may want to specify which analyzer to use
for each field. Previously, either the analyzer specified by 'analyzer' would
be used for all fields, or the if not set, the analyzer associated with the
field would be chosen. This commit provides the ability to fine grain which
analyzer should be used for each field. In this respect, the 'analyzer'
parameter is extended to allow for JSON objects of the type {"fieldName" :
"analyzerName"}. The exact behavior of this feature is described below.

Key Value Syntax (current syntax and behavior):
-----------------------------------------------

"analyzer" : "stop"

- applies this analyzer to 'like_text' if exists.
- applies this analyzer to all fields in items if they exist.
- if 'null' or not set, uses the analyzer associated with the field. In the
  case of 'like_text', the field is considered to be the first in 'fields'.

Object Syntax:
--------------

"analyzer" : {
    "__like_text__" : "whitespace",
    "title" : "standard",
    "description" : "standard",
    "tags" : "keyword"
}

- applies the analyzer associated with the key denotating the field name.
- any key set to 'null' or not set defaults to the analyzer associated with
  the field or to the analyzer specified at '__default__' if specified.
- special field '__like_text__' specifies the analyzer for the 'like_text'
  content. If set to 'null' or not set, defaults to the analyzer associated
  with the first field in 'fields', as in the key value syntax.
- keys must match fields name in top level parameter 'fields' or in the
  'fields' of each item.

Full Examples in Query context:
-------------------------------

  {
    "more_like_this" : {
        "fields" : ["name.first", "name.last"],
        "like_text" : "text like this one",
        "min_term_freq" : 1,
        "max_query_terms" : 12,
        "analyzer" : "stop"
    }
}

{
    "more_like_this" : {
        "like_text" : "hello world!",
        "fields" : ["title", "description"],
        "docs" : [
        {
            "_index" : "test",
            "_type" : "type",
            "_id" : "1",
            "fields" : ["tags", "description"]
        },
        {
            "_index" : "test",
            "_type" : "type",
            "_id" : "2",
            "fields" : ["tags", "description"]
        }
        ],
        "ids" : ["3", "4"],
        "min_term_freq" : 1,
        "max_query_terms" : 12,
        "analyzer" : {
            "__like_text__" : "whitespace",
            "tags" : "keyword",
            "description" : "stop"
        }
    }
}