Term Vectors/MLT Query: support for different analyzers than default at the field

This adds a `per_field_analyzer` parameter to the Term Vectors API, which
allows to override the default analyzer at the field. If the field already
stores term vectors, then they will be re-generated. Since the MLT Query uses
the Term Vectors API under its hood, this commits also adds the same ability
to the MLT Query, thereby allowing users to fine grain how each field item
should be processed and analyzed.
So here you are asking for terms vectors from field "a" and "b" in which the analyzer at field "b" is used, which could be the default analyzer, but override the analyzer at field "a" by the one specified in `per_field_analyzer`. For field "a" this means that the term vectors will always be generated, however for field "b" and if term vectors are stored, then they will just be retrieved. The mapping is never changed, only the way term vectors are generated, in similar fashion to the `analyze` API.