Remove some Internal* abstractions

We have lots of boilerplate code that is unnecessarily abstracting
services ie InternalIndexShard and IndexShard or InternalIndexService and
IndexService. It's enough to have concrete classes for these core classes.

Closes #8904

Conflicts:
	src/main/java/org/elasticsearch/action/deletebyquery/TransportShardDeleteByQueryAction.java
	src/main/java/org/elasticsearch/cluster/metadata/MetaDataCreateIndexService.java
	src/main/java/org/elasticsearch/index/IndexService.java
	src/main/java/org/elasticsearch/index/gateway/IndexShardGatewayService.java
	src/main/java/org/elasticsearch/index/gateway/local/LocalIndexShardGateway.java
	src/main/java/org/elasticsearch/index/percolator/PercolatorQueriesRegistry.java
	src/main/java/org/elasticsearch/index/service/IndexService.java
	src/main/java/org/elasticsearch/index/shard/IndexShard.java
	src/main/java/org/elasticsearch/index/shard/service/IndexShard.java
	src/main/java/org/elasticsearch/index/termvectors/ShardTermVectorService.java
	src/main/java/org/elasticsearch/indices/InternalIndicesService.java
	src/test/java/org/elasticsearch/common/lucene/docset/DocIdSetsTests.java
	src/test/java/org/elasticsearch/index/fielddata/AbstractFieldDataTests.java
	src/test/java/org/elasticsearch/index/mapper/string/SimpleStringMappingTests.java
	src/test/java/org/elasticsearch/test/ElasticsearchIntegrationTest.java
	src/test/java/org/elasticsearch/test/InternalTestCluster.java