Test: Improved CLI testing infrastructure

Added a CaptureOutputTerminal class to the infrastructure, which can be used
in tests, to make sure that CLI commands write out the right data
Internal: removed needless serialization code from TransportIndexReplicationAction and corresponding request object

TransportIndexReplicationAction is always executed locally, as an internal action that is part of either delete by query or delete (when routing is required but not specified). Only the corresponding shard level requests get sent over the transport, hence no transport endpoint is needed for the index version, nor the index request itself is supposed to be sent over the transport.

Moved classes from org.elasticsearch.action.delete.index to org.elasticsearch.action.delete and adjusted visibility so that internal requests are not public anymore.

Also removed serialization code from IndexDeleteResponse as it never gets sent over transport either.

Closes #7211
Core: Improve XContentBuilder API.
Internal: refactored TransportSingleCustomOperationAction, subclasses and requests

TransportSingleCustomOperationAction is subclassed by two similar, yet different transport action: TransportAnalyzeAction and TransportGetFieldMappingsAction. Made their difference and similarities more explicit by sharing common code and moving specific code to subclasses:
- moved index field to the parent SingleCustomOperationAction class
- moved the common check blocks code to the parent transport action class
- moved the main transport handler to the TransportAnalyzeAction subclass as it is only used to receive external requests through clients. In the case of the TransportGetFieldMappingsIndexAction instead, the action is internal and executed only locally as part of the user facing TransportGetFieldMappingsAction. The corresponding request gets sent over the transport though as part of the related shard request
- removed the get field mappings index action from the action names mapping as it is not a transport handler anymore. It was before although never used.

Closes #7214
[DOCS] Added section describing how to return only agg results

Closes #5875
[TEST] Fix SimpleQueryTests.testRangeQuery assumptions.

This test assumed that the `num` field was mapped as an integer on all shards
and thus that all of them should fail when providing a timezone. However, since
it used dynamic mappings, some shards might have this field not mapped, as a
consequence they didn't fail.
Mapping: fixes dynamic mapping of geo_point fields

If a dynamic mapping for a geo_point field is defined and the first document specifies the value of the field as a geo_point array, the dynamic mapping throws an error as the array is broken into individual number before consulting the dynamic mapping configuration.  This change adds a check of the dynamic mapping before the array is split into individual numbers.

Closes #6939
[Build] @Nullable annotation is not applied to primitive types.
[Build] Make Eclipse aware of Elasticsearch's Nullable annotation for null pointer dereference analysis.
Internal: Fix a very rare case of corruption in compression used for
internal cluster communication.

See CorruptedCompressorTests for details on how this bug can be hit.
This change also removes the ability to use the unsafe variant of
ChunkedEncoder, removing support for the compress.lzf.decoder setting.
Core: Pass down the types from the delete mapping request to the delete by query request.

The `.percolator` type is a hidden type and therefor the types from the delete mapping request should passed down to the delete by query request, otherwise the percolator type gets ignored and the percolator queries don't get deleted from disk (only unregistered).

Closes #7087
Internal: adjusted visibility of GetRequest members (from protected to private) and resolved warning
[DOCS] fixed DeleteIndexedScriptResponse javadocs
Core: Avoid null references that may be returned due to concurrent changes or inconsistent cluster state

Closes #7181
Mappings: Make sure that multi fields are serialized in alphabetic order to ensure that the source is always the same.

Closes #7215
Test: don't need to wait for concrete mappings since we map both fields when we create the index
Internal: adjusted TermVectorRequest serialization to not serialize and de-serialize the index twice

Closes #7221
Geo: fixes geo_shapes which intersect dateline

If a geo_shape had edges which either ran vertically along the dateline or touched the date line but did not cross it they would fail to parse.  This is because the code which splits a polygon along the dateline did not take into account the case where the polygon touched but did not cross the dateline.  This PR fixes those issues and provides tests for them.

Close #7016
Geo: Better error for invalid multipolygon

Closes #7126
Fix for failing BasePolygonBuilder