[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
Logging: Add log4j-extras dependency

Close #7927
[DOCS] Added documentation for log4j-extras dependency
Update migrate_1_4.asciidoc

Added note about MVEL being removed to breaking changes.

Closes #8462
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
Provide more context variables in update scripts

In addition to `_source`, the following variables are available through
the `ctx` map: `_index`, `_type`, `_id`, `_version`, `_routing`,
`_parent`, `_timestamp`, `_ttl`.

Some of these fields are more useful still within the context of an
Update By Query, see #1607, #2230, #2231.
Internal: Don't pass acceptdocs down to nonNestedDocsFilter in ParentsFilter

Closes #8461
Mapping: Fixes Merging of default analyzer

Fixed behaviour where two representations of the default index analyzer weren't being treated as equivalent. Added REST test to confirm fix.

Closes #2716
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
Logging: BroadcastOperationAction - added trace logging for successful shard-level responses

In order to be able to trace the exact shards that participated in the operation.
[CORE] Intorduce shards level locks to prevent concurrent shard modifications

Today it's possible that the data directory for a single shard is used by more than on
IndexShard->Store instances. While one shard is already closed but has a concurrent recovery
running and a new shard is creating it's engine files can conflict and data can potentially
be lost. We also remove shards data without checking if there are still users of the files
or if files are still open which can cause pending writes / flushes or the delete operation
to fail. If the latter is the case the index might be treated as a dangeling index and is brought
back to life at a later point in time.

This commit introduces a shard level lock that prevents modifications to the shard data
while it's still in use. Locks are created per shard and maintined in NodeEnvironment.java.
In contrast to most java concurrency primitives those locks are not reentrant.

This commit also adds infrastructure that checks if all shard locks are released after tests.

Conflicts:
	src/main/java/org/elasticsearch/common/io/FileSystemUtils.java
	src/main/java/org/elasticsearch/gateway/local/state/meta/LocalGatewayMetaState.java
	src/main/java/org/elasticsearch/gateway/none/NoneGateway.java
	src/main/java/org/elasticsearch/index/gateway/local/LocalIndexShardGateway.java
	src/main/java/org/elasticsearch/index/service/InternalIndexService.java
	src/main/java/org/elasticsearch/index/store/DirectoryService.java
	src/main/java/org/elasticsearch/index/store/DistributorDirectory.java
	src/main/java/org/elasticsearch/index/store/Store.java
	src/main/java/org/elasticsearch/index/store/fs/FsIndexStore.java
	src/main/java/org/elasticsearch/indices/store/IndicesStore.java
	src/test/java/org/elasticsearch/index/store/DistributorDirectoryTest.java
	src/test/java/org/elasticsearch/test/InternalTestCluster.java
	src/test/java/org/elasticsearch/test/store/MockFSDirectoryService.java
Fix synchronization - leftover from refactoring
[TEST] Close node env otherwise windows can't delete tmp files
Prevent double wrapping directories in MockDirectoryWrapper
Use Store#tryIncRef when running check index