Phrase Suggester: Add option to filter out phrase suggestions


The newly added filter option will let the user provide a template query which will be executed for every
phrase suggestions generated to ensure that the suggestion matches at least one document for the query.
The filter query is only executed on the local node for now. When the new filter option is used, the
size of the suggestion is restricted to 20.

Closes #3482
I'd name it just `Preference`...maybe we can make this an enum and have a parse method on it like:

```Java
public Preference parse(String string) {

   switch (valueBeforeColon(string)) {
      case "_shards":
          return SHARDS;
      case "_prefer_node":
      case "_preferNode":
          return PREFER_NODE;
     //...

   } 
}

/**
  * this splits off the values ie in _prefer_node / _shards
public abstract String values();
```