[TEST] consistently omit norms in test otherwise scoring will be dependent on merges etc.
[TEST] Force flush even if not needed to ensure successful shards is greater than 0
[TEST] Add basic Backwards Compatibility Tests

This commit add a basic infrastructure as well as primitive tests
to ensure version backwards compatibility between the current
development trunk and an arbitrary previous version. The compatibility
tests are simple unit tests derived from a base class that starts
and manages nodes from a provided elasticsearch release package.

Use the following commandline executes all backwards compatiblity tests
in isolation:

```
mvn test -Dtests.bwc=true -Dtests.bwc.version=1.2.1 -Dtests.class=org.elasticsearch.bwcompat.*
```

These tests run basic checks like rolling upgrades and
routing/searching/get etc. against the specified version. The version
must be present in the `./backwards` folder as
`./backwards/elasticsearch-x.y.z`
[TEST] Add test for accessing _score in scripts
[TEST] Fix test cluster naming

This commit renames `TestCluster` -> `InternalTestCluster` and
`ImmutableTestCluster` to `TestCluster` for consistency. This also
makes `ExternalTestCluster` and `InternalTestCluster` consistent
with respect to their execution environment.

Closes #6510
[DOCS] Fixed is/if typo in Api Conventions doc
[TEST] wait for ongoing recoveries to finish. Flush fails on shards otherwise.
[TEST] verify all threads created by node and client have the node name
closes #6516
Use ordinals for comparison in GlobalOrdinalsStringTermsAggregator.buildAggregation. Closes #6518
[Benchmark] Fix TermsAggregationSearchBenchmark: The `ordinals` execution mode doesn't exist anymore.
don't check .metadata folder for tabs and nocommits
[TEST] Use test.bwc.version if compatibility version is not present
[CLIENT] Remove unnecessary intermediate interfaces

Client, ClusterAdminClient and IndicesAdminClient had corresponding
intermediate `internal` interfaces that are unnecessary and cause
a lot of casting. This commit removes the intermediate interfaces
and uses the super interfaces directly.

This commit also adds Releaseable to `Node` and `Client` in order to
be used with utilities like try / with.

Closes #4355
Closes #6517
Changed the type of field docCounts to IntArray instead of LongArray, because a shard can't hold more than Integer.MAX_VALUE a LongArray just takes unnecessary space.

Closes #6529