### 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
x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/TransportPutShutdownNodeAction.java
}
    @Override
    protected void masterOperation(
        Task task,
        PutShutdownNodeAction.Request request,
        ClusterState state,
        ActionListener<AcknowledgedResponse> listener
    ) throws Exception {
        clusterService.submitStateUpdateTask("put-node-shutdown-" + request.getNodeId(), new ClusterStateUpdateTask() {
            @Override
            public ClusterState execute(ClusterState currentState) {
                NodesShutdownMetadata currentShutdownMetadata = currentState.metadata().custom(NodesShutdownMetadata.TYPE);
                if (currentShutdownMetadata == null) {
                    currentShutdownMetadata = new NodesShutdownMetadata(new HashMap<>());
                }
                final boolean nodeSeen = currentState.getNodes().nodeExists(request.getNodeId());
                SingleNodeShutdownMetadata newNodeMetadata = SingleNodeShutdownMetadata.builder()
                    .setNodeId(request.getNodeId())
                    .setType(request.getType())
                    .setReason(request.getReason())
                    .setStartedAtMillis(System.currentTimeMillis())
                    .setNodeSeen(nodeSeen)
                    .setAllocationDelay(request.getAllocationDelay())
                    .setTargetNodeName(request.getTargetNodeName())
                    .build();
                
                SingleNodeShutdownMetadata existingRecord = currentShutdownMetadata.getAllNodeMetadataMap().get(request.getNodeId());
                if (existingRecord != null) {
                    logger.info("updating existing shutdown record {} with new record {}", existingRecord, newNodeMetadata);
                } else {