Support specifing score query on highlight.

This is useful if you want to highlight terms not in the search query or
you want sort highlighted snippets based on another query.

Closes #3630
introduced support for "shard_size" for terms & terms_stats facets. The "shard_size" is the number of term entries each shard will send back to the coordinating node. "shard_size" > "size" will increase the accuracy (both in terms of the counts associated with each term and the terms that will actually be returned the user) - of course, the higher "shard_size" is, the more expensive the processing becomes as bigger queues are maintained on a shard level and larger lists are streamed back from the shards.

closes #3821
added javadocs for builder and cleaned up support for `shard_size` on terms & terms_stats facets
[DOCS] Fixed a typo in indices.get_templates
improve thread pool rejection message