Index Stats: Add support for segments stats
closes #4101
Improve stability of RobinEngineIntegrationTest by reducing direct memory usage of the test env
External method to set rootTypeParsers in DocumentMapperParser incorrect
fixes #4113
Set MaxDirectMemorySize for tests to have consistent upper bounds
Reduce number of documents in RobinEngineIntegrationTest to prevent memory peaks triggering OOM
Guarantee sorted order for [Double|Long|Bytes]Values

Values returned by [Double|Long|Bytes]Values are sorted today which
is guaranteed by the underlying Lucene index. Several implementations can
make use of this property but the interfaces don't guarantee this behavior.
This commit adds the guarantees and makes use of them in several places.

Note: This change might require sorting for 3rd party implemenations of these
interaces.
Move IndexFieldDataServiceTests into corresponding package
Move MockDirectories into o.e.test.store
Move o.e.junit to o.e.test.junit
Move stresstests out of o.e.test
Fixed fetch subphase to not recreate the HitContext for each hit, so that the object cache stays the same

Fixed also bug in the fast vector highlighter which was raised by enabling the object cache, due to null FieldQuery (NPE) in case the objects are taken from the cache

Added tests to check if there are issues when highlighting multiple fields at the same time

Closes #4106
Trimmed down HighlighterSearchTests

Used common assertHighlight and concise mapping whenever possible
More indexRandom too
Fix missing affectation in SimpleChildQuerySearchTests.testParentChildQueriesCanHandleNoRelevantTypesInIndex()
[DOCS] Changed all store:yes/no to store:true/false
which is how this setting is stored internally
[DOCS] Fixed the fielddata regex example on core mapping
Used the actual index_name when making highlighting using the postings highlighter

Previously the field name specified in the search request was used, which isn't correct in case a custom index_name has been used for a field or the "path":"just_name" has been used in the mapping.

 Closes #4116
Terms Lookup By Query

Add support for looking up filter terms using the results of a filter.
A filter can be used to gather a set of results and the specified
"path" field value will be extracted from each matching
document and used as a filter term.

The query lookup is cached by default to avoid redundant lookups and
the field data cache is used during lookup and document filtering to
improve performance when the number of terms is high.

There is a significant performance improvement when performing the
lookup on numeric fields since we don't use BytesRef's avoiding the
costly conversion of the numeric value to a string and copying the
resulting bytes into the BytesRef.  Performance is also improved by
using the BloomFilter mode which creates a bloom filter based on
terms from the matching filter documents.  Each document matching
the original query is then checked against the BloomFilter to
determine if it is a hit or not.