[DOCS] Expand logging documentation

Updated log4j link so it doesn't point to log4j 2.0 but version 1.2. Clarified which formats are supported and briefly explained what loggers and appenders are, plus added a link to the log4j docs.

Closes #5305
Closes #8455
Update migrate_1_4.asciidoc

Added note about MVEL being removed to breaking changes.

Closes #8462
Reroute shards automatically when high disk watermark is exceeded

This adds a Listener interface to the ClusterInfoService, this is used
by the DiskThresholdDecider, which adds a listener to check for nodes
passing the high watermark. If a node is past the high watermark an
empty reroute is issued so shards can be reallocated if desired.

A reroute will only be issued once every
`cluster.routing.allocation.disk.reroute_interval`, which is "60s" by
default.

Refactors InternalClusterInfoService to delegate the nodes stats and
indices stats gathering into separate methods so they have be overriden
by extending classes. Each stat gathering method returns a
CountDownLatch that can be used to wait until processing for that part
is successful before calling the listeners.

Fixes #8146
Take percentage watermarks into account for reroute listener

Fixes an issue where only absolute bytes were taken into account when
kicking off an automatic reroute due to disk usage. Also randomized the
tests to use either an absolute value or a percentage so this is tested.

Also adds logging for each node over the high and low watermark every
time a new cluster info usage is gathered (defaults to every 30
seconds).

Related to #8368
Fixes #8367
Indices API: Fix GET index API always running all features

Previous to this change all features (_alias,_mapping,_settings,_warmer) are run regardless of which features are actually requested. This change fixes the request object to resolve this bug
Added quotes to allow spaces in installation path
Tests: Improve netty test behaviour

Based on some test failures, this commit fixes two minor things

* Bind ports only on so called ephemeral ports to prevent try to
  bind to ports where elasticsearch already runs on
* Remove @Network annotation as it was used in a wrong scope
Update terms-aggregation.asciidoc

It looks like the reference editor forgot to remove some draft notes. These two sentences look more like a release notes than the reference info.

Closes #8469
Internal: Don't pass acceptdocs down to nonNestedDocsFilter in ParentsFilter

Closes #8461
Configuration: Tab characters in YAML should throw an exception.

Throw an exception if there is a 'tab' character in the elasticsearch.yml file

Close #8259
Core: In the bitset cache only eagerly load bitsets for parent nested object fields.
Don't eagerly cache parent type filters in bitset cache or nested object fields that are leafs.

Also let parent/child queries not rely on FixedBitSetFilter, but rather on regular Filter

Closes #8440
Aggregations: Changed child filters to not require a random access based bitset in `nested` agg.
Also the nested agg now requires docs to be consumed / scored in order.

Closes #8454
[BWC] BWC layer for GetIndex should not block in a listener

Today we execute BWC calls against nodes that have not GetIndex API
in a action listeners #onFailure method. These calls are blocking today
and might be executed on a bounded thread-pool which might deadlock the
call depending on how many threads are in the pool and how the pool is
setup. These calls should run async as well.
Docs: Fix typo in the javadoc for #tieBreaker()

Closes #8503
fix of Bulk update child doc, NPE error message when parent is not specified #8365
  - Throw an RoutingMissingException instead of NPE
Bulk indexing issue - missing parent routing causes NullPointerException.
Now each error is reported in bulk response rather than causing entire bulk to fail.
Added a Junit test but the use of TransportClient means the error is manifested differently to a REST based request - instead of a NullPointer the whole of the bulk request failed with a RoutingMissingException. Changed TransportBulkAction to catch this exception and treat it the same as the existing logic for a ElasticsearchParseException - the individual bulk request items are flagged and reported individually rather than failing the whole bulk request.

Closes #8365
Snapshot/Restore: restore of indices that are only partially available in the cluster

Fixes the issue with restoring of an index that had only some of its primary shards allocated before it was closed.

Fixes #8224
Snapshot/Restore: keep the last legacy checksums file at the end of restore

 This commit fixes the issue caused by restore process deleting all legacy checksum files at the end of restore process. Instead it keeps the latest version of the checksum intact. The issue manifests itself in losing checksum for all legacy files restored into post 1.3.0 cluster, which in turn causes unnecessary snapshotting of files that didn't change.

Fixes #8119
[TEST] Register data.path for all nodes on close in InternalTestCluster

We need to register those data paths otherwise we might miss path that
need to get cleaned when using local gatway etc. which can otherwise
cause imports of dangeling indices.

Conflicts:
	src/test/java/org/elasticsearch/test/InternalTestCluster.java
Docs: Update execution hint docs for Significant terms agg

copied over the relevant pieces from the terms agg

Closes #8532