Added `cross_fields` type to multi_match query

`cross_fields` attempts to treat fields with the same analysis
configuration as a single field and uses maximum score promotion or
combination of the scores based depending on the `use_dis_max` setting.
By default scores are combined.

Relates to #2959