### Description

Clusters can have thousands of ILM policies. 
`GET _ilm/policy` returns all of them and runs on the master node.

This proposes we chunk the response for better memory usage and clients experience.

Relates to https://github.com/elastic/elasticsearch/issues/96568
x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ilm/action/GetLifecycleResponseTests.java
randomAlphaOfLength(8),
                    randomUsage()
                )
            );
        }
        return new Response(responseItems);
    }
    @Override
    protected Writeable.Reader<Response> instanceReader() {
        return Response::new;
    }
    protected NamedWriteableRegistry getNamedWriteableRegistry() {
        return new NamedWriteableRegistry(
            Arrays.asList(
                new NamedWriteableRegistry.Entry(LifecycleAction.class, MockAction.NAME, MockAction::new),
                new NamedWriteableRegistry.Entry(LifecycleType.class, TestLifecycleType.TYPE, in -> TestLifecycleType.INSTANCE)
            )
        );
    }
    @Override
    protected Response mutateInstance(Response response) {
        List<LifecyclePolicyResponseItem> responseItems = new ArrayList<>(response.getPolicies());
        if (responseItems.size() > 0) {
            if (randomBoolean()) {
                responseItems.add(
                    new LifecyclePolicyResponseItem(
                        randomTestLifecyclePolicy(randomAlphaOfLength(5)),
                        randomNonNegativeLong(),
                        randomAlphaOfLength(4),
                        randomUsage()