Apply minimum_should_match to inner clauses of multi_match query
When specifying minimum_should_match in a multi_match query it was being applied
to the outer bool query instead of to each of the inner field-specific bool queries.

Closes #2918
Added tests for multi_match with minimum_should_match
use Double/Float.compare for stable and correct float sort order