Mappers: Better validation of mapping JSON

Closes #7205
[DOCS] Corrected syntax error in search curl cmd

Closes #8447
[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
Docs: Changed breaking docs in master to correspond with 1.x for easier merging
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
Docs: Fixed a bad ref to docs-bulk-udp which no longer exists in master
Added quotes to allow spaces in installation path
Removed bwc for GetIndexRequest serialisation
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
[GEO] Fix for ArithmeticException[/ by zero] when parsing a "polygon" with one pair of coordinates

While this commit is primariy a fix for issue/8433 it adds more rigor to ShapeBuilder for parsing against the GeoJSON specification. Specifically, this adds LinearRing and LineString validity checks as defined in http://geojson.org/geojson-spec.html to ensure valid polygons are specified. The benefit of this fix is to provide a gate check at parse time to avoid any further processing if an invalid GeoJSON is provided.  More parse checks like these will be necessary going forward to ensure full compliance with the GeoJSON specification.

Closes #8433
Term Vectors: Fix NPE with dfs and no tvs

Fixes a bug with dfs option for when term vectors are not stored and not generated.
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.
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
Correcting coordinate checks on LinearRing and LineString, updating test
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
Adding parse gates for valid GeoJSON coordinates. Includes unit tests.
Updating to throw IllegalArgument exception for null value coordinates. Tests included.
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