Added global ordinals (unique incremental numbering for terms) to fielddata.
Added a terms aggregation implementations that work on global ordinals, which is also the default.

Closes #5672
fix typo
Add doc value for binary field.

Close #5669
Remove AtomicFieldData.isValuesOrdered.

This method is not used anymore.

Close #5688
add lucene language model similarities (Dirichlet & JelinekMercer)
Remove clear on mock page/array
since we use a shared cluster, calling clear on the mock array / page recycler can cause removing a valid on going reference, and then when its released, the release will fail because it can't be found.
There is no real reason to call clear, checking if pages/arrays have been released takes the snapshot behavior here into account.
This change also makes sure we don't use the mock classes in places where we don't really release.

Note, with this change DoubleTermsTests fails, since it causes failures when creating aggs in the pre process phase, causing obtained arrays not to be released. This needs to be fixed before pulling this change in.
disable args tests that cause page/array leak
related to #5703
Renamed XContentParser.Token named "t" to "token".

The name "token" was declared 191 times for XContentParser.Token
objects, while "t" was used only 6 times.
Renamed ClusterBlocks variable named "block" to "blocks".

"blocks" has been used 9 times for variable names of type
ClusterBlocks but block has been used only this case. It
seems to be a typo.
Removing EOL client rubberband and adding official php client
Fix typo and add more clients
Update link to puppet module and remove link to other RPM repo as we have our own.
Aggregation cleanup

- consolidated value source parsing under a single parser that is reused in all the value source aggs parsers
- consolidated include/exclude parsing under a single parser
- cleaned up value format handling, to have consistent behaviour across all values source aggs
Update advanced-scripting.asciidoc
Recycled bytes in http + rest layer refactoring phase 2
Refactor the rest layer handlers to simplify common code paths (like handling) failures, and introduce optional (enabled for netty) rest channel bytes recycling
[TEST] Replaced RestTestSuiteRunner with parametrized test that uses RandomizedRunner directly

ElasticsearchRestTests extends now ElasticsearchIntegrationTest and makes use of our ordinary test infrastructure, in particular all randomized aspects now come for free instead of having to maintain a separate (custom) tests runner

We previously parsed only the tests that needed to be run given the version of the cluster the tests are running against. This doesn't happen anymore as it didn't buy much and it would be harder to support as the tests get now parsed before the test cluster gets started. Thus all the tests are now parsed regardless of their skip sections, afterwards the ones that don't need to be run will be skipped through assume directives.

Fixed REST tests that rely on a specific number of shards as this change introduces also random number of shards and replicas (through randomIndexTemplate)

Closes #5654
[TEST] null out static resources in base test classes
[TEST] specified number_of_shards 5 to make sure the two docs end up in different shards that can be refreshed separately
Make writePrimitive*() and readPrimitive*() methods public.

These utility methods are useful for client code to read/write arrays of
primitive types.
Update LongHash to work like BytesRefHash.

- rename "key" to "get"
- update and add more tests

Closes #5693