Call out to a missing `@custom` pipeline so that users can add custom processors to the default logs pipeline.

Open questions
* Can we make the custom pipeline specific for a dataset?
* Should this pipeline also be called by integrations?
* Align with https://github.com/elastic/kibana/issues/149484

Relates to https://github.com/elastic/elasticsearch/pull/95481

cc @joshdover @kpollich 
x-pack/plugin/stack/src/test/java/org/elasticsearch/xpack/stack/StackTemplateRegistryTests.java
final AtomicInteger calledTimes = new AtomicInteger(0);
        client.setVerifier((action, request, listener) -> {
            if (action instanceof PutComponentTemplateAction) {
                
                return AcknowledgedResponse.TRUE;
            } else if (action instanceof PutLifecycleAction) {
                
                return AcknowledgedResponse.TRUE;
            } else if (action instanceof PutComposableIndexTemplateAction) {
                calledTimes.incrementAndGet();
                assertThat(request, instanceOf(PutComposableIndexTemplateAction.Request.class));
                PutComposableIndexTemplateAction.Request putComposableTemplateRequest = (PutComposableIndexTemplateAction.Request) request;
                assertThat(putComposableTemplateRequest.name(), equalTo("syslog"));
                ComposableIndexTemplate composableIndexTemplate = putComposableTemplateRequest.indexTemplate();
                assertThat(composableIndexTemplate.composedOf(), hasSize(2));
                assertThat(composableIndexTemplate.composedOf().get(0), equalTo("logs-settings"));
                assertThat(composableIndexTemplate.composedOf().get(1), equalTo("syslog@custom"));
                assertThat(composableIndexTemplate.getIgnoreMissingComponentTemplates(), hasSize(1));
                assertThat(composableIndexTemplate.getIgnoreMissingComponentTemplates().get(0), equalTo("syslog@custom"));
                return AcknowledgedResponse.TRUE;
            } else {
                fail("client called with unexpected request:" + request.toString());
                return null;
            }
        });
        registryWithNonRequiredTemplate.clusterChanged(event);
        assertBusy(() -> assertThat(calledTimes.get(), equalTo(1)));
    }
    @TestLogging(value = "org.elasticsearch.xpack.core.template:DEBUG", reason = "test")
    public void testSameOrHigherVersionTemplateNotUpgraded() {