Indices API: Added GET Index API

Returns information about settings, aliases, warmers, and mappings. Basically returns the IndexMetadata. This new endpoint replaces the /{index}/_alias|_aliases|_mapping|_mappings|_settings|_warmer|_warmers and /_alias|_aliases|_mapping|_mappings|_settings|_warmer|_warmers endpoints whilst maintaining the same response formats. The only exception to this is on the /_alias|_aliases|_warmer|_warmers endpoint which will now return a section for 'aliases' or 'warmers' even if no aliases or warmers exist. This backwards compatibility change is documented in the reference docs.

Closes #4069
[DOCS] Additional documentation for _score accessing

Closes #7043

Conflicts:
	docs/reference/modules/scripting.asciidoc
[TEST] added exception for GET index API to bwc tests
Internal: refactor copy headers mechanism to not require a client factory

With #7594 we replaced the static `BaseRestHandler#addUsefulHeaders` by introducing the `RestClientFactory` that can be injected and used to register the relevant headers. To simplify things, we can now register relevant headers through the `RestController` and remove the `RestClientFactory` that was just introduced.

Closes #7675
[TEST] parse response body as json depending on the content-type in our REST tests
[API] Fix minor issues with indices.get definition and tests

mark index param as required
make body match json, not string containing json
Bulk UDP: Deprecation.

See #7595 for removal in 2.0.
Close #7684
[DOCS] clarification of breaking changes to 1.4 due to GET index API
[TEST] Use a real unique clustername for InternalTestClusterTests
Spec: Fixed the doc links for indices.get and indices.exists
Changed dev-tools/es_release_notes to:
* remove markdown support
* prefer PRs over issues
* include related issues in the list
* always use section headers if there is a header
[STORE] Improve exception from Store.failIfCorrupted

If you have previously corrupted files, this method currently builds an
exception like:
```
    failed engine [corrupted preexisting index]
    failed to start shard
```

Followed by a CorruptIndexException. This commit writes the entire
stacktrace to provide additional information. It also changes the
failure message from `corrupted preexisting index` to `preexisting
corrupted index` to prevent confusion.

Closes #7596
More Like This API: remove unused search_query_hint parameter

Closes #7691
[TEST] Use a sorted set since sets are compared and compare is order specific
Test: Enabled ChildrenTests#testParentWithMultipleBuckets with more logging
Test: Added more assertions
Aggregation top_hits: Move sort resolution to the reduce method, so it is always guaranteed to be invoked.
Test: Let both types have a non_analyzed id field.
Aggregations top_hits: Fixed inconsistent sorting of the hits

In the reduce logic of the top_hits aggregation if the first shard result to process contained has no results then the merging of all the shard results can go wrong resulting in an incorrect sorted hits.
This bug can only manifest with a sort other than score.

Closes #7697
[TEST] fix another rounding issue