Add the memory used on segment/segments stats
The memory used for the Lucene index (term dict, bloom filter, ...) can now be reported per segment using the segments API, and on the segments flag on node/indices stats
closes #4512
Add ability to specify base directory on the repository level

This change is needed to support multiple repositories per S3 bucket
Update snapshot list when snapshot is deleted
try and extract store directory also if its wrapped in a compound dir
fix bloom filter posting format to get the fpp from the correct settings
Add repository information to docs

This adds the apt and yum repo information to the setup docs.
Use a List of shards per shard ID rather than a set.

The shards in the set are mutated after they are added to the
set such that the hashcode doesn't fit anymore. For this reason
this used an identity hashset before but the downside of this is
that the iteration order is not deterministic. We can just use a list
since shard removal is a very rare action and the size of the list is
very small such that iteration is fast.
Allow to enable / disable bloom filter loading on an index
Allow to have a new index level setting index.codec.bloom.load (default to true), that can control if the boom filters will be loaded or not. This is an updateable setting, that can be updated on a live index using the update settings API.

Note though, when this setting is updated, a fresh Lucene index will be reopened, causing associate caches to be dropped potentially.

closes #4525

Note, this change also disables the returning lucene ram usage stats, due to a bug in Lucene, relates to #4512
Failed search on a shard tries a local replica on a network thread
When a search on a shard to a remove node fails, and then replica exists on the local node, then the execution of the search is done on the network thread. This is problematic since we need to execute it on the actual search thread pool, but can also explain #4519, where the get happens on the network thread and it waits to send the get request till the network thread we use is freed (deadlock...)
fixes #4526

note, re-enable the geo shape fetch test, this fix should solve it as well
Stricter parsing of aggregations.

 - Only one aggregation type is allowed per aggregation definition.
 - Return an error in the parsers when an unknown field is encountered.

Close #4464
[DOCS] Added the official PHP client to the community page.
[DOCS] Documented index.codec.bloom.load for #4525
[DOCS] Corrected bloom loading docs
[DOCS] Fixed community links to official clients
Counting shards was wrong if one of the indices was in the RED status

Closes #4528
Reverting back to 0.90.7 config/templates loading behaviour

Closes #4511
Added unit tests for ClusterIndexHealth and ClusterHealthResponse

Relates to #4528
initial commit
Added ParentUidTermsEnum to better encapsulate the uid filtering logic in _uid and _parent fields. (only uids of parent types can be accepted)
Separated the ordinals loading from the actual storage