Remove AggregationContext.cacheRecycler().
Cardinality aggregation.

This aggregation computes unique term counts using the hyperloglog++ algorithm
which uses linear counting to estimate low cardinalities and hyperloglog on
higher cardinalities.

Since this algorithm works on hashes, it is useful for high-cardinality fields
to store the hash of values directly in the index, which is the purpose of
the new `murmur3` field type. This is less necessary on low-cardinality
string fields because the aggregator is smart enough to only compute the hash
once per unique value per segment thanks to ordinals, or on numeric fields
since hashing them is very fast.

Close #5426
Added static analysis profile to pom.xml

Added pmd, findbug as well as site generation logic to top pom.xml file
Created customized pmd ruleset
[TEST] Add mapping to use an actual stopword analyzer

This test was added when the default  analyzer was filtering stopwords. But since
1.0 the default analyzer doesn't filter stopwords
[TEST] Stabelize ConcurrentPercolatorTests after # shard randomization
[TEST] Rewrite SearchStatsTests to not shut down nodes after indexing.

The test was shutting down nodes even if some of the inidces had only a
single shard. This caused that we basically had no shard active that
could sever the docs and caused random failures. This commit fixed the
test to rather allocate enough shards such that we never need to resize
the cluster which also makes the test faster.
Add retry mechanism to get snapshot method

During snapshot finalization the snapshot file is getting overwritten. If we try to read the snapshot file at this moment we can get back an empty or incomplete snapshot. This change adds a retry mechanism in case of such failure.