significant terms: infrastructure for changing easily the significance h...

...euristic

This commit adds the infrastructure to allow pluging in different
measures for computing the significance of a term.
Significance measures can be provided externally by overriding

- SignificanceHeuristic
- SignificanceHeuristicBuilder
- SignificanceHeuristicParser

and registering Parser and Heuristic at the SignificantTermsHeuristicModule.

As a proof of concept, this commit also adds a second heuristic to the
already existing one (MutualInformation).
yes, I added a commit "check if version supports..."
I added a bwc test for this check, but on latest master that fails because of the combination of (6093)[https://github.com/elasticsearch/elasticsearch/pull/6093]
 and (5659)[https://github.com/elasticsearch/elasticsearch/issues/5659]. Currently, the branch is based on e2da2114e7b8a3 . I'll rebase on latest master once this is resolved.