**Elasticsearch version** (`bin/elasticsearch --version`): 7.16 (earlier too), 8.0, 8.1

**Description of the problem including expected versus actual behavior**:
Currently, the rollover requests are not cancellable, irrespective of the underlying incoming HTTP channel being closed (eg. by a proxy). This could result in clients receiving `504` and retrying the rollovers, resulting in multiple rollover operations being processed (some products issue rollovers without specifying conditions, so this could translate in multiple subsequent rollovers being executed).

This proposes using the `RestCancellableNodeClient` infrastructure for the rollover API, such that elasticsearch can react to the incoming HTTP connection being closed by cancelling the rollover operation.

server/src/main/java/org/elasticsearch/action/admin/indices/rollover/RolloverRequest.java
*/
    public void setNewIndexName(String newIndexName) {
        this.newIndexName = newIndexName;
    }
    /**
     * Sets if the rollover should not be executed when conditions are met
     */
    public void dryRun(boolean dryRun) {
        this.dryRun = dryRun;
    }
    /**
     * Sets the wait for active shards configuration for the rolled index that gets created.
     */
    public void setWaitForActiveShards(ActiveShardCount waitForActiveShards) {
        createIndexRequest.waitForActiveShards(waitForActiveShards);
    }
    /**
     * Adds condition to check if the index is at least <code>age</code> old
     */
    public void addMaxIndexAgeCondition(TimeValue age) {
        MaxAgeCondition maxAgeCondition = new MaxAgeCondition(age);
        if (this.conditions.containsKey(maxAgeCondition.name)) {
            throw new IllegalArgumentException(maxAgeCondition.name + " condition is already set");
        }
        this.conditions.put(maxAgeCondition.name, maxAgeCondition);
    }
    /**
     * Adds condition to check if the index has at least <code>numDocs</code>
     */
    public void addMaxIndexDocsCondition(long numDocs) {