added a top level try catch for threaded operations. Exception which bubbled up could cause requests to hang.
Switched all catch (Exception e) to catch (Throwable e)
use the now publicly available getDisjuncts
GetMapping failed when index had no mapping (yet)

Closes #3534
Change response format of term vector endpoint

This commit changes the response format of the term vectors
to be consistent with the response format of the analyze endpoint.

```
{
   "_index": "test",
   "_type": "type1",
   "_id": "1",
   "_version": 1,
   "exists": true,
   "term_vectors": {
      "field_with_positions_offsets": {
         "field_statistics": {..},
         "terms": {
            "evil": {
               "term_freq": 2,
               "pos": [ 4 , 7 ],
               "start": [ 17, 40 ],
               "end": [ 21 , 44 ]
            },
            "orthodontist": {
               "term_freq": 1,
               "pos": [ 5 ]
               ],
               "start": [ 22 ],
               "end": [ 34]
            }
         }
      }
   }
}
```

becomes

```
{
   "_index": "test",
   "_type": "type1",
   "_id": "1",
   "_version": 1,
   "exists": true,
   "term_vectors": {
      "field_with_positions_offsets": {
         "field_statistics": {..},
         "terms": {
            "evil": {
               "term_freq": 2,
               "tokens": [
                   { "position": 4, "start_offset": 17, "end_offset" : 21 },
                   { "position": 7, "start_offset": 40, "end_offset" : 44 }
               ]
            },
            "orthodontist": {
               "term_freq": 1,
               "tokens" : [ { "position": 5 , "start_offset" : 22, "end_offset" : 34 } ]
            }
         }
      }
   }
}
```

Closes issue #3484
Fix search shards count method when targeting concrete and routing-aliased indices
Added test for #3268 and comments to test for #2682
XContentHelper.mergeDefaults with single key object list ([ { key: .. } , {key : ... } .. ] ) didn't add defaults which were not already in content

 Closes #3538
Improved multi percolate api, to bundle all the requests by shard into one shard level request instead of sending each percolate request separately to the shards.
Add the /_cat/count and /_cat/count/{index} API.

The cat count API allows retrieving the count of all docs in the
cluster, or docs in specific indices, in a human-readable format.
Renamed readable_format flag to human

Closes #3541
when doing range queries within a query_string query, the range terms should only be lowercased if the field is not numeric

fixes #3540
Share shards computation logic between searchShards and searchShardsCount
Prevent FVH from entering a very long running loop on large docs with high freq phrase terms.

Terminate phrase searches early if max phrase window is exceeded in
FastVectorHighlighter to prevent very long running phrase
extraction if phrase terms are high frequent. See LUCENE-5182

Closes #3543
Bound processor size based cals to 32
We use number of processors to choose default thread pool sizes, and number of workers in networking (for HTTP and transport). Bound it to max at 32 by default as a safety measure to create too many threads.

This relates to #3478, where we set the default to 24, but 32 is probably a better default.

closes #3545
Smarter default to `index.index_concurrency`
closes #3546
Adding Contributing guidelines
Expose size statistics for completion suggest

In order to determine how many RAM the completion suggest structures will eat up, this data should be exposed.

Closes #3522
Checking for paylods as JSON objects in completion suggester

If the payload is not a JSON object on indexation, an exception will be thrown.
Completion Suggester: Allow payload to be a value
closes #3550