**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/test/java/org/elasticsearch/action/admin/indices/rollover/TransportRolloverActionTests.java
when(indexStats.getPrimaries()).thenReturn(primaryStats);
        when(indexStats.getTotal()).thenReturn(totalStats);
        return response;
    }
    private IndicesStatsResponse createAliasToMultipleIndicesStatsResponse(Map<String, IndexStats> indexStats) {
        final IndicesStatsResponse response = mock(IndicesStatsResponse.class);
        final CommonStats primariesStats = new CommonStats();
        final CommonStats totalStats = new CommonStats();
        for (String indexName : indexStats.keySet()) {
            when(response.getIndex(indexName)).thenReturn(indexStats.get(indexName));
            primariesStats.add(indexStats.get(indexName).getPrimaries());
            totalStats.add(indexStats.get(indexName).getTotal());
        }
        when(response.getPrimaries()).thenReturn(primariesStats);
        when(response.getTotal()).thenReturn(totalStats);
        return response;
    }
    private IndexStats createIndexStats(long primaries, long total) {
        final CommonStats primariesCommonStats = mock(CommonStats.class);
        when(primariesCommonStats.getDocs()).thenReturn(new DocsStats(primaries, 0, between(1, 10000)));
        final CommonStats totalCommonStats = mock(CommonStats.class);
        when(totalCommonStats.getDocs()).thenReturn(new DocsStats(total, 0, between(1, 10000)));
        IndexStats indexStats = mock(IndexStats.class);
        when(indexStats.getPrimaries()).thenReturn(primariesCommonStats);
        when(indexStats.getTotal()).thenReturn(totalCommonStats);
        return indexStats;
    }
    private static IndexMetadata createMetadata(String indexName) {
        final Settings settings = Settings.builder()
            .put(IndexMetadata.SETTING_VERSION_CREATED, Version.CURRENT)