Exposed shard id related to a failure in delete by query

Relates to #5095, where we want to expose the potential shard failures obtained from the delete by query api. Although the failure is available, the shard id where it happened is not (always `-1`).

Refactored TransportIndexReplicationOperationAction to be able to expose the shard id related to a shard failure.

The `ShardOperationFailedException` is now created within `TransportIndexReplicationAction` passing in the current shard id as a constructor argument.
Also replaced `AtomicReferenceArray<Object>` with `AtomicReferenceArray<ShardActionResult>`, where `ShardActionResult` wraps the `ShardResponse` or the failure, containing all the needed info.