An improvement to unicast discovery to also ping nodes the node itself received a ping from.
Also moved the unicast tests all in a single package.

Closes #5508
[TEST] decreased number of replicas to 0 in refresh tests

Some tests disable refresh and verify that documents cannot be found without an explicit refresh. With at least one replica and waiting for yellow though, it can happen that we start indexing docs when the replicas are not ready yet, and as soon as they become ready they get refreshed, causing the newly added docs to be unexpectedly found. Solution is to disable replicas for these specific tests.
Document http.cors-settings
Search template: Fix support for source parameter

If a search template was created using the source parameter, the
content of the parameter was put as source instead of sourceTemplate

Fixes #5556
Refactor common code for unmapped aggregators into `NonCollectingAggregator`.

Our aggregators that are dedicated to unmapped fields all look more or less
the same so this hopefully helps remove some spaghetti code.

Close #5528
[TEST] Test sending the request body as source parameter with GET method through REST tests

For around 10% of the calls that support the GET method, the request body gets now sent as `source` parameter with GET method (no randomized method in this case).

This way we can find bugs like #5556 (missing support for source param).
Fix some warnings reported by Findbugs.

Although high-severity bugs were mostly static variables that were not final,
it also found potential NPEs and bugs like `x ^= x;` or equality checks on
objects that don't share a common interface.

Close #5571
check "store" for binary mapper and check "index_name" for all mappers

closes #5474
Fix some typos in documentation.
[Test] remove timeout from deleteWarmer call with many shards that might just take a while
TransportMasterNodeOperationAction: tighter postAdded change check

If a node fails to forward a master node operation to the current master, it will schedule a retry using a listener for cluster state changes. Once the listener is in place (and future changes are guaranteed to be observed) it will double check nothing has change during the addition of the listener. This check has previously been change to use cluster state versions (see: #5499). This is however not reliable solution as master elections (which change the master) do not increment the cluster state version and thus could be missed. This commit changes the check to use reference equality making it stricter.

Closes #5548
Bulk API: Ensure that specific failures do not affect whole request

Before a bulk request is executed, missing indices are being created by default.
If this fails, the whole request is failed.

This patch changes the behaviour to not fail the whole request, but rather all
requests using the index where the creation has failed.

Closes #4987
[TEST] introduced ImmutableTestCluster abstract base class for TestCluster

The new base class contains all the immutable methods for a cluster, which will be extended by the future ExternalCluster impl that relies on an external cluster and won't be adding nodes etc. but only sending requests to an existing cluster whose layout never changes

Closes #5620
[TEST] Fixed TTL tests for create, index, update
Were failing on faster boxes
Fix visibility in buffered translog
- fix visiblity of last written position in translog
- while there, make sure to properly propagate the exception from sync()
ContextSuggester: Adding couple of tests to catch more bugs

A bunch of minor fixes have been included here, especially due
to wrongly parsed mappings. Also using assertions resulted in an
NPE because they were disabled in the distribution.

Closes #5525
Cleanup Rest Response
simplify rest response class hierarchy, by using BytesReference for content, and handling JSONP internally in the respective channel that sends the response.
Also, handle the future case where bytes might be releasable, when we start to potentially recycle bytes output stream.
InternalEngine - added an assert to verify refresh was performed by lucene
InternalEngine - only set dirty=false after a refresh happened
Aggregations cleanup

- removed an abstraction layer that handles the values source (consolidated values source with field data source)
- better handling of value parser/formatter in range & histogram aggs
- the buckets key will now be shown by default in range agg