REST API: Allow to configure JSONP/callback support

Added the http.jsonp.enable option to configure disabling of JSONP responses, as those
might pose a security risk, and can be disabled if unused.

This also fixes bugs in NettyHttpChannel
* JSONP responses were never setting application/javascript as the content-type
* The content-type and content-length headers were being overwritten even if they were set before

Closes #6164
Mapping: Fix possibility of losing meta configuration on field mapping update

The TTL, size, timestamp and index meta properties could be lost on an
update of a single field mapping due to a wrong comparison in the
merge method (which was caused by a wrong initialization, which marked
an update as explicitely disabled instead of unset.

Closes #5053
Java API: BulkRequest#add(Iterable) to support UpdateRequests

Closes #6551
[TEST] Added (trace) logging to testGetFields_complexField
Mappings: Allow _version to use `disk` as a doc values format.

VersionFieldMapper.defaultDocValuesFormat claims that the default is `disk`.
This is not used to choose the DV format in the index but for mappings
serialization in order to know when the _version doc values format is
different from the default format. This made it impossible to use the `disk`
doc values format since mappings would never retain that information at
serialization time.

Close #6523
significant terms: infrastructure for changing easily the significance heuristic

This commit adds the infrastructure to allow pluging in different
measures for computing the significance of a term.
Significance measures can be provided externally by overriding

- SignificanceHeuristic
- SignificanceHeuristicBuilder
- SignificanceHeuristicParser

and registering Parser and Heuristic at the SignificantTermsHeuristicModule.

As a proof of concept, this commit also adds a second heuristic to the
already existing one (MutualInformation).
correct docs
use ParseField correctly

however, the strict check cannot be performed because no access to the parse flags
get the strict name setting from the index settings for deprecated names check
exclude_negatives -> include_negatives
remove the check for deprecated names, needs separate pr
check if version supports significance heuristics when reading and writing
Compute score after streaming not only at toXContent()

When using java api, the score might else still not be computed.
Also, add test that streamed response has score computed
without toXContent() being called for each bucket.
toXContent() is called whenever assertSearchResponse() is called and we want to
check without side effects here.
builder and parser unit tests
test score assertions and score
check for shard failures instead of specific terms

the new assertions are triggered with this test