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.
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