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.
I have not looked at the code yet but something that is unclear to me at that point is whether it replaces the mapping or overrides it. So for example if I specify `fields = [ "a", "b" ]` and a `per_field_analyzer` only for `a`, what will happen for `b`? Will it use the default analyzer or the analyzer it has in the mappings?