### Description

Implement health indicator for shard allocation.
This indicator should have same or similar behavior to existing health endpoint.

Aspects to be considered:
* nodes scheduled for reboot should not cause cluster to go yellow (but could cause it go red)
* huge number of unallocated shards should not cause response bloat.
* consider showing allocation explain if possible

Rel: TBD
server/src/main/java/org/elasticsearch/node/Node.java
searchModule.getValuesSourceRegistry().getUsageService(),
                statsRequestLimiter
            );
            final SearchService searchService = newSearchService(
                clusterService,
                indicesService,
                threadPool,
                scriptService,
                bigArrays,
                searchModule.getFetchPhase(),
                responseCollectorService,
                circuitBreakerService,
                executorSelector
            );
            final SystemIndexMigrationExecutor systemIndexMigrationExecutor = new SystemIndexMigrationExecutor(
                client,
                clusterService,
                systemIndices,
                metadataUpdateSettingsService,
                metadataCreateIndexService,
                settingsModule.getIndexScopedSettings()
            );
            final List<PersistentTasksExecutor<?>> builtinTaskExecutors = List.of(systemIndexMigrationExecutor);
            final List<PersistentTasksExecutor<?>> pluginTaskExectors = pluginsService.filterPlugins(PersistentTaskPlugin.class)
                .stream()
                .map(
                    p -> p.getPersistentTasksExecutor(
                        clusterService,
                        threadPool,
                        client,