### Description

From the nodes stats API, we should extract the `ingest` stats into their own endpoint. This endpoint can then be non-node-centric, and present a global view of the pipelines, processors, and the metrics collected around ingest in general.
server/src/main/java/org/elasticsearch/ingest/IngestStats.java
private final List<PipelineStat> pipelineStats = new ArrayList<>();
        private final Map<String, List<ProcessorStat>> processorStats = new HashMap<>();
        Builder addTotalMetrics(IngestMetric totalMetric) {
            assert totalStats == null;
            this.totalStats = totalMetric.createStats();
            return this;
        }
        Builder addPipelineMetrics(String pipelineId, IngestMetric pipelineMetric) {
            this.pipelineStats.add(new PipelineStat(pipelineId, pipelineMetric.createStats()));
            return this;
        }
        Builder addProcessorMetrics(String pipelineId, String processorName, String processorType, IngestMetric metric) {
            this.processorStats.computeIfAbsent(pipelineId, k -> new ArrayList<>())
                .add(new ProcessorStat(processorName, processorType, metric.createStats()));
            return this;
        }
        IngestStats build() {
            return new IngestStats(totalStats, Collections.unmodifiableList(pipelineStats), Collections.unmodifiableMap(processorStats));
        }
    }
    /**
     * Container for pipeline stats.
     */
    public record PipelineStat(String pipelineId, Stats stats) {}
    /**
     * Container for processor stats.
     */
    public record ProcessorStat(String name, String type, Stats stats) {}
}