Core: don't spin 100% CPU when disabling refresh_interval

If refresh was already running when the refresh_interval is
dynamically disabled (set to a non-positive value like 0, -1, etc.),
then it's possible for the refresh thread to go into while (true)
refresh() loop.

Closes #8085

Closes #8087
Tests: check maven central download service is up before running plugin manager test

Though we check that internet connection is fine and that the service is available, it could happen that some services are not available.

```java
assumeTrue(isDownloadServiceWorking("search.maven.org", 80, "/"));
singlePluginInstallAndRemove("org.elasticsearch/elasticsearch-transport-thrift/2.4.0", null);
```

In that case, the first check was successful but downloading thrift plugin from maven central download services was not successful.

This is not an issue with the plugin manager itself but sometimes the test could fail.

Adding a check that actual download service in Maven central works:

```java
assumeTrue(isDownloadServiceWorking("repo1.maven.org", 443, "/maven2/org/elasticsearch/elasticsearch-transport-thrift/2.4.0/elasticsearch-transport-thrift-2.4.0.pom"));
```
[CORE] Add cluster and index state checksums

This commit adds checksumming for cluster and index states. It moves
from a plain XContent based on-disk format to a more structured binary
format including a header and footer as well as a CRC32 checksum for
each of these files. Since previous versions didn't write any format
identifier etc. this commit adds a file extension `.st` for states
that have header/footer and checksum.
This commit also moves over to write temporary files and moves them into
place with an atomic move operation. This commit also serializes and
deserializes the states without materilazing them into opaque memory.

Closes #7586
Log exception thrown in ScriptEngineService.scriptRemoved

Guava would swallow the exception and log it itself if we bubbled it up,
so we catch and log it ourselves to use our logging infrastructure.
Docs: Fix curl statements in query-cache.asciidoc

Closes #7989
Docs: Update highlighting.asciidoc

Added note about how to highlight on the `_all` field

Closes #7991
Internal: dangling indices import ignores aliases

Dangling indices are indexes found on disk which are not part of the cluster state. By default, we don't delete them but rather import them into the cluster state in order to not accidentally delete data and also allow for the ease of copying index data folders from one cluster to another. Currently, the import logic doesn't check for existing aliases of the same name as the imported dangling index, causing both an index and an alias with the same name.

 This commit add a protection against this. Note that the index is still kept as dangling and is only deleted from disk after `gateway.local.dangling_timeout` has passed (2 hours).

 We also change the log message indicating deletion of dangling indices to a `WARN` level.

 Closes #8059
Docs: Add plugin to list

This plugin provides trigram accelerated regular expression search for when
you need reasonably fast arbitrary matching.

Closes #7997
Adding "min" score mode to parent-child queries

Support for "max", "sum", and "avg" already existed.
Adding ScoreTypesTest missing license header
Add file descriptor details to cat/nodes

cat/nodes currently does not report any details related to file descriptors. This adds the current number in use, the maximum number available as well as their ratio (percentage) to cat/nodes as hidden-by-default metrics. In addition, this also adds current heap usage (as a non-percentage of ts max) and ram usage (as a non-percerntage of its max) to allow tools to provide more granularity.

Closes #7652
Tweaking upgrade test to improve reliability.
testDanglingIndicesConflictWithAlias - wait for node left to be processed

O.w. delete index command may time out waiting for the node that left to confirm deletion
Docs: cross_type query needs to be cross_fields

Closes #8021
Fixing test to allow decimal numbers for load.
Updating test to support Windows file descriptor count (-1)
Docs: Removing escape character

The escape character `\` doesn't work and should be removed from the documentation.

Closes #8029
Add debug logging to help diagnose intermittent upgrade test failures.

Also fixed indentation in ElasticsearchMergePolicy.
Update cat.nodes regex

Support for multi-word node names like 'Henry "Hank" McCoy'
Snapshot/Restore: fix snapshot of a single closed index

Snapshot of a closed index can leave snapshot hanging in initializing state.

Fixes #8046