Docs: fixed ICU plugin documentation

add ICU Normalization CharFilter to docs

Closes #6711
[DOCS] Add information regarding _type parameter requirement for _mget

Closes #6670.
[DOCS] Add information regarding _type parameter requirement for _mget

Change ID to `[[mget-type]]`

Closes #6670.
Fix github download link when using specific version
More resource efficient analysis wrapping usage
Today, we take great care to try and share the same analyzer instances across shards and indices (global analyzer). The idea is to share the same analyzer so the thread local resource it has will not be allocated per analyzer instance per thread.
The problem is that AnalyzerWrapper keeps its resources on its own per thread storage, and with per field reuse strategy, it causes for per field per thread token stream components to be used. This is very evident with the StandardTokenizer that uses a buffer...
This came out of test with "many fields", where the majority of 1GB heap was consumed by StandardTokenizer instances...
closes #6714
[TEST] Wait for yellow since some shards might not be started

In this test we only index a handful of docs so if we have more shards
than docs we might fail on the `assertSearchResult` since not all shards
are started but results are just fine.
[Query] QueryParser can return null from a query

This causes a NPE since XContentStructure checks if the query is null
and takes this as the condition to parse from the byte source which is
actually null in that case.

Closes #6722
[TEST] assert search results before comparing the results - shards / indices might be missing
[TEST] use existing client that is already in the cluster to wait for joining node
Updated cache.asciidoc

The index level filter cache was removed a long time ago

Closes #6455
[TEST] Order of the results is not important in this test
The query string cache can't return the same instance, since Query is mutable changing the query else where in the execution path changes the instance in the cache too.

Instead the query parser cache should return a cloned instances.

Closes #2542
Closes #6733
Added licence header
[TEST] Reset all cluster if a test hit a failure

Closes #6734
make sure we use the new analyzer wrapper on 4.10
PluginManager: tests for missing plugin name when passing --url

Adding code to test for unset plugin names to fail fast with descriptive error messages. Also simplified the series of `if` statements checking for the commands by using a `switch` (now that it's using Java 7), added tests, and updated random exceptions with the up-to-date flag names (e.g., "--verbose" instead of "-verbose").

Closes #5976.
Closes #6013.
[TEST] mute test - working on a fix
Docs: Link to eskka discovery plugin from doc

Closes #6721
[TEST] Ensure scores are consistent.
Removing plugin does not fail when plugin dir is read only

If you try to remove a plugin in read only dir, you get a successful result:

```
$ bin/plugin --remove marvel
-> Removing marvel
Removed marvel
```

But actually the plugin has not been removed.

When installing, if fails properly:

```
$ bin/plugin -i elasticsearch/marvel/latest
-> Installing elasticsearch/marvel/latest...

Failed to install elasticsearch/marvel/latest, reason: plugin directory /usr/local/elasticsearch/plugins is read only
```

This change throw an exception when we don't succeed removing the plugin.

Closes #6546.