Tie-break suggestions from phrase suggester by term

If the score for two suggestions is the same, we now tie break by term; earlier terms (aaa) sort before later terms (zzz).

Closes #5978
[TEST] Stabelize MoreLikeThisActionTests

The `testCompareMoreLikeThisDSLWithAPI` test compares results from query
and API which might query different shards. Those shares might use
different doc IDs internally to disambiguate. This commit resorts the
results and compares them after stable disambiguation.
[TEST] Beef up MoreLikeThisActionTests#testCompareMoreLikeThisDSLWithAPI
[DOCS] Cat recovery API update

This is an update for the _cat/recovery API documentation. The examples
have been updated. Removed the bottom paragraph explaining why there
could be values > 100%. This can no longer happen so that had to be
removed.

Closes #6159
[TEST] Added await for yellow status,
because the shard the get request for 'test' index, 'type1' type and id 1 is getting executed on may not be in a started state
and also added more logging.
[TEST] Ensure multi_match & match query equivalence in the single field case
Don't report terms as live if all it's docs are filtered out

FilterableTermsEnum allows to filter stats by supplying per segment
bits. Today if all docs are filtered out the term is still reported as
live but shouldn't.

Relates to #6211
[TEST] Drop obsolet test - the option is obsolet and won't be fixed
Fixing invalid jsons
Check accepts docs before MatchDocIdSet#matchDoc(int)

We currently ask `MatchDocIdSet#matchDoc(int)` before consulting
the accept docs. This can also have a negative performance impact
since `matchDoc(int)` calls might be way more expensive than
acceptDocs calls.

Closes #6234
Add dummy docs injection to indexRandom

This commit add `dummy docs` to `ElasticsearchIntegrationTest#indexRandom`.
It indexes document with an empty body into the indices specified by the docs
and deletes them after all docs have been indexed. This produces gaps in
the segments and enforces usage of accept docs on lower levels to ensure
the features work with delete documents as well.
Register uppercase as an exposed ES token filter.

Just follow "lowercase" token filter example and register "uppercase" token filter as an exposed token filter. This will not, by itself, test whether ES is correctly handling "uppercase" TF; this is more of a "code as documentation" fix.
Do not throw execption on no available nodes when listing benchmarks.

Changed behavior to not throw an exception on a status request
when there are no available benchmark nodes.

Closes #6146
Upgrade to Lucene 4.8.1

This commit upgrades to the latest Lucene 4.8.1 release including the
following bugfixes:

 * An IndexThrottle now kicks in when merges start falling behind
   limiting index threads to 1 until merges caught up. Closes #6066
 * RateLimiter now kicks in at the configured rate where previously
   the limiter was limiting at ~8MB/sec almost all the time. Closes #6018
Added Version [1.3.0]
Remove obsolet ASF repository Lucene 4.8.1 is on maven central
CharArraySet doesn't know how to lookup the original string
in an ImmutableList.

Closes #6237
[TEST] Provide overloaded indexRandom to opt out of dummy documents
[TEST] Opt out of dummy documents where scores are relevant.
Honor time delay when retrying recoveries

In some places we want to delay the start of a shard recovery because the source node is not ready to receive. At the moment the retry logic ignores the time delay parameter (`retryAfter`) causing a busy waiting like scenario. This is fixed in this commit.

Closes #6226