Improve test stability
upgrade to jackson 2.2.1
Make GetField behavior more consitent for multivalued fields.

Before this change, the GetField#getValue() method was returning a list of values of a multivalued fields if the field values were obtained from source or if the field was stored and real-time get was used. If the field was stored but non-realtime get was used, GetField#getValue() was returning only the first element and the GetField#getValues() was returning a list of elements. This change makes behavior consistent. GetField#getValue() now always returns only the first value of the field and GetField#getValues() returns the entire list.
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
Fix for RPM postinstall on old OpenSUSE distributions

Older OpenSUSE distributions do not ship with systemd and therefore are
using chkconfig, but do not have their scripts placed at /etc/init.d/
This patch is more defensive and adds additional checks in the postinstall
script to prevent aborted post install scripts, which makes the RPM
uninstallable.