Cleanup IndicesFieldDataCache and IndexFieldDataCache

This commit adds several asserts and removes possible `null` values
from the `FieldDataCache` implementation.

Closes #5664
[BUILD] Set -Dtests.jvms=auto by default to make use of multiple JVMs
[TEST] Make BulkTests#testBulkProcessorFlush more robust
sizeInBytes can be 0
[TEST] Make sure refresh is called by `indexRandom`, even if the list of documents to index is empty.
[TEST] Fix [Children|Parent]ConstantScoreQueryTests with nightly=true

Those tests use RandomIW which can flush after each document taking forever
to index the 20k docs it was indexing. This commit makes sure the IW is
sane and the number of docs is not too crazy.
[TEST] Reduce number of documents/terms in aggregations' RandomTests.

This test initially had three purposes:
 - duels between equivalent aggregations on significant amounts of data,
 - make sure that array growth works (when the number of buckets grows larger
   than the initial number o buckets),
 - make sure that page recycling works correctly.

Because of the last point, it needed large numbers of docs/terms since page
recycling only kicks in on arrays of more than 16KB. However, since then, we
added a MockPageCacheRecycler to track allocation/release of BigArrays and make
sure that all arrays get released, so we can now lower these numbers of docs/
terms to just make sure that array growth is triggered.
Take stream position into account when calculating remaining length

Currently `PagedBytesReferenceStreamInput#read(byte[],int,int)` ignores
the current pos and that causes to read past EOF

Closes #5667
[TEST] build index up-front to prevent relocations
[TEST] Harden GeoShapeIntegrationTests.
Added global ordinals (unique incremental numbering for terms) and added a terms aggregation implementations that work on global ordinals.
Made execution mode `global_ordinals` the default.
Added documentation
Fixed typos
Remove redundant logic in IndicesWarmer
Made global ordinals the default
Use PriorityQuery when loading global ordinals from the segment leaves.
clearified global ords in field data docs
Some other small cleanups and renamings
Let SortedSetDVAtomicFieldData use its own TermsEnum
Added index.global_ordinals_compress_threshold
eager init bytesValues in GlobalOrdinalIndexFieldData#getBytesValues
extend currentValueHash the returned BytesValues.WithOrdinals in GlobalOrdinalIndexFieldData#getBytesValues
Minor changes to benchmark
Fixed test failures