[STORE] Don't catch FNF/NSF exception when reading metadata

When reading metadata we do catch FileNotFound and NoSuchFileExceptions
today, log the even and return an empty metadata object. Yet, in some cases
this might be the wrong thing todo ie. if a commit point is provided these
situations are actually an error and should be rethrown. This commit
pushes the responsiblity to the caller to handle this exception.

Closes #8207
ParseField: Support for when all fields are deprecated

Closes #8067
Docs: fixed typo in documentation

Closes #8205
Fix for ParseFieldTests using unsupported ArrayUtils
Bulk indexing: Fix 8125 hanged request when auto create index is off.
If a bulk request contains a mix of indexing requests for an existing index and one that needs to be auto-created but a cluster configuration prevents the auto-create of the new index the ingest process hangs. The exception for the failure to create an index was not caught or reported back properly. Added a Junit test to recreate the issue and the associated fix is in TransportBulkAction.

Closes #8125
Docs: rolling upgrade process seems incorrect

When reading the [rolling upgrade process](http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/setup-upgrade.html#rolling-upgrades), you can see that we wrote:

* disable allocation
* upgrade node1
* upgrade node2
* upgrade node3
* ...
* enable allocation

That won't work as after a node has been removed and restarted, no shard will be allocated anymore.
So closing node2 and remaining nodes, won't help to serve index and search request anymore.

We should write:

* disable allocation
* upgrade node1
* enable allocation
* wait for shards being recovered on node1
* disable allocation
* upgrade node2
* enable allocation
* wait for shards being recovered on node2
* disable allocation
* upgrade node3
* enable allocation
* wait for shards being recovered on node3
* disable allocation
* ...
* enable allocation

I think this documentation update should go in 1.3, 1.4, 1.x and master branches.

Closes #8218
Closes #7973.
[TEST] `Scope.SUITE` is not reproducible due to late cluster initialization

The cluster for `Scope.SUITE` tests must be initialize in a static manner
before the first test runs otherwise the random context used to initialize
the cluster is taken from tests randomness rather than the suites randomness.
This means test clusters will have different setups if only a single test is
executed or even the test might have a entirely different random sequence.
[TEST] NettyTransportMultiPortIntegrationTests used wrong random to
initialize ports.

JUnit uses an instance per test which caused the prot range to be
initialized twice since suite level tests are not configured in a
different context.
Core: Validates bool values in yaml for node settings

- Added parseBooleanExact in booleans which throws exception in case of
  parse failure
- Used ParseExact in static's to make it consistent

+ code review fixes

- Added unit test
- Changed Exception Type to ElasticSearchIllegalArg from Parse
- used isExplicit*

Closes #8097
[TEST] Add test for #8226
Aggregations: Return the sum of the doc counts of other buckets.

This commit adds a new field to the response of the terms aggregation called
`sum_other_doc_count` which is equal to the sum of the doc counts of the buckets
that did not make it to the list of top buckets. It is typically useful to have
a sector called eg. `other` when using terms aggregations to build pie charts.

Example query and response:

```json
GET test/_search?search_type=count
{
  "aggs": {
    "colors": {
      "terms": {
        "field": "color",
        "size": 3
      }
    }
  }
}
```

```json
{
   [...],
   "aggregations": {
      "colors": {
         "doc_count_error_upper_bound": 0,
         "sum_other_doc_count": 4,
         "buckets": [
            {
               "key": "blue",
               "doc_count": 65
            },
            {
               "key": "red",
               "doc_count": 14
            },
            {
               "key": "brown",
               "doc_count": 3
            }
         ]
      }
   }
}
```

Close #8213
Test: remove wait on events from multipleNodesShutdownNonMasterNodes

The test validates that minimum master node is honored after shutting down nodes. When nodes are restarted we may go through a couple of master election of a master is elected and  discovers some of the old nodes left before all new node have joined. Processing that node failure the master de-elects it self, which is fine because we will start a new master election. Test however runs a clusterHealth call with a  wait for event. This is implemented using a cluster state update task which fails when the master steps down. Longer term fix requires a rewrite of the cluster health API code but a quick fix is not check for events (not needed for this test).
Core: Cleanup non nested filter to not flip the bits in the FixedBitSet returned by the wrapped filter.

If the filter producing the FBS were to be cached then it would flip bits each time the NonNestedDocsFilter was executed.
In our case we cache the NonNestedDocsFilter itself so that didn't happen each time this filter was used.
However the hashcode of NonNestedDocsFilter and NestedDocsFilter was the same, since NonNestedDocsFilter directly used NestedDocsFilter#hashCode()

Closes #8227
Closes #8232
Documented that HTTP pipelining is not supported
Docs: Update multi-get.asciidoc

Duplicate word

Closes #8228
Make indexQueryParserService available. Closes #8248
Introduce elasticsearch.in.bat (i.e. es.in for Windows)

Break-out common functionality between elasticsearch.bat and service.bat
Relates #8237

(cherry picked from commit 87095e79534bcef97b2b275322c924bd96b34e3b)
Improve handling of multicast binding exceptions

In case the multicast binding fails (due to socket errors), abort zen
pinging code and throw a better error message
Relates #8225

(cherry picked from commit f819cff77a0ef95b340afc2f22e3464283803960)
Enabled overriding the request headers in the clients

One can set the headers sent with request by the clients by setting the `request.headers` setting. This commit enables overriding any such set headers directly on the requests.
Tests: Removed use of put_alias without an index name

Relates to #7863