Added an option to add arbitrary headers to the client requests

The headers are key/value pairs defined in the settings under the `request.headers` namespace.
[TEST] simplified unicast bw comp test

also fixed unchecked warning in CompositeTestCluster
Documented the query cache module

Related to #7161 and #7167
[TEST] Assert that put mappings requests are acked in GeoMappingTests.
[TEST] fixed unicast bw comp test configuration

The second internal node, when present, wasn't able to join the existing cluster due ti misconfigured unicast hosts, thus it would form its own cluster.
Internal: fixed typo in NodeService s/disovery/discovery
REST spec: Added missing query_cache param to clear_cache, nodes.stats and indices.stats

Relates to #7167 and #7161
Test: Trimmed trailing whitespace to make valid YAML
max_x_bytes_per_sec settings apply to all reps

Currently, the 2 bytes_per_sec settings are listed under "Shared File System Repository" but they apply to all repository types.

`max_restore_bytes_per_sec`:: Throttles per node restore rate. Defaults to `20mb` per second.
`max_snapshot_bytes_per_sec`:: Throttles per node snapshot rate. Defaults to `20mb` per second.
max_x_bytes_per_sec settings apply to all reps

max_x_bytes_per_sec settings apply to all reps not just shared file rep.  Fixed formatting of initial PR commit.
Tidied up the filters agg docs and added a coming[] tag
[DOCS] fixed title for filters aggregation documentation
[DOCS] Remove the section about codecs.

This documentation was dangerous because it felt like it was possible to gain
substantial performance by just switching the codec of the index.

However, non-default codecs are dangerous to use since they are not supported
in terms of backward compatibility, and most improvements that they bring have
been folded into the default codec anyway (for example, the default codec
"pulses" postings lists that contain a single document).
Java api: remove operationThreaded setter from ExplainRequestBuilder, already available in base class SingleShardOperationRequestBuilder

It also didn't follow the setter convention that we adopted for request builders.
Fixed also javadocs warning caused byt missing descriptions for tag.

Closes #7186
Fixing typo in the first JSON example

Closes #7172
Cleaned up TransportMessage and added transient context to it

 - The context enables setting arbitrary transient data on the message (this data is not serialized with the request)
 - Changed header accessors/mutators so header manipulation will be done directly on the request (to void NPE with transport message headers when dealing with maps that can potentially be null)
Update update.asciidoc

Closes #6577
test random strings in CompressedStringTests
Internal: Remove (mostly) unused 'failure' member from ShardSearchFailure.

closes #6837
closes #6861
test some random bytes with compressed streams