Ok, I added a commit to use Explicit. Take a look!

> a reference to testing for undefined values using shardSize on the default object returned by getDefaultBucketCountThresholds() - but shardSize is mutable - if anyone happens to call ensureValidity on this default object then its shardSize setting would change from -1 to 10 which seems dangerous.

The default values are `private` and `getDefaultBucketCountThresholds()` creates a new instance. In addition I now check if the values were set (using `.explicit()`) when the default parameters are retrieved. The only way to mess with the default settings is now within `SignificantTermsParametersParser` or `TermsParametersParser`. Is that good enough?