lazy compute the hash and actually use it...
Added support for the update operation in the bulk api.

Update requests can now be put in the bulk api. All update request options are supported.

Example usage:
```
curl -XPOST 'localhost:9200/_bulk' --date-binary @bulk.json
```

Contents of bulk.json that contains two update request items:
```
{ "update" : {"_id" : "1", "_type" : "type1", "_index" : "index1", "_retry_on_conflict" : 3} }
{ "doc" : {"field" : "value"} }
{ "update" : { "_id" : "0", "_type" : "type1", "_index" : "index1", "_retry_on_conflict" : 3} }
{ "script" : "counter += param1", "lang" : "js", "params" : {"param1" : 1}, "upsert" : {"counter" : 1}}
```
The `doc`, `upsert` and all script related options are part of the payload. The `retry_on_conflict` option is part of the header.

Closes #2982
Reject update request that has both script and doc
Added test that checks if a validation error is thrown when both doc and script provided in a update request.
Closes #2967
No need for deepCopy on makeSafe for pages field data
Since its a reference to a buffer in the PagedBytes, we don't need to deep copy it on makeSafe, just shallow copy it
remove concrete bytes for field data
no really need for it, specifically with the fact that we don't need to deepCopy on makeSafe for the (default) paged bytes
Allow to set headers in HTTP response

This commit allows to set custom headers in HTTP responses (like
setting the WWW-Authenticate header for basic auth) by adding
RestRequest.addHeader() method.

Closes #2936
Closes #2540

To get the history right: This is based on PR #2723
not active shards should translate to 503 not 500
test no longer needed...
use throwable in transport layer
catch throwable when processing messages in the transport layer, to report back failures even under errors
upgrade to mvel 2.1.5
update to joda 2.2
resolved empty setting values should be removed
when resolving empty settings values, their value should be removed, for example, when using ${env.ENV_VAR}, and ENV_VAR is not set, then the setting should be removed
Improved the stability of hl tests by adding waiting for at least yellow status.
In some test cases this was missing.
Made all the queries support `score_mode` parameter name in addition to the existing parameter name for score mode.
Closes #3026
Also support `sum` as `score_mode` option for the nested query.
Relates to #3026