[CORE] Don't update indexShard if it has been removed before

Today we have logic that removes a shard from the indexservice if
the shard has changed ie. from replica to primary or if it's recovery
source vanished etc. This can cause shards from been not allocated at
all on a nodes causeing delete requests to timeout since we were waiting
for shards on nodes that got dropped due to a IndexShardMissingException

you'd see exceptions like this before: 

```
  1> org.elasticsearch.index.IndexShardMissingException: [test][5] missing
  1> 	at org.elasticsearch.index.service.InternalIndexService.shardInjectorSafe(InternalIndexService.java:293)
  1> 	at org.elasticsearch.indices.cluster.IndicesClusterStateService.applyNewOrUpdatedShards(IndicesClusterStateService.java:572)
  1> 	at org.elasticsearch.indices.cluster.IndicesClusterStateService.clusterChanged(IndicesClusterStateService.java:184)
  1> 	at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:444)
```