### 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
logger.info("creating shutdown record {}", newNodeMetadata);
                }
                return ClusterState.builder(currentState)
                    .metadata(
                        Metadata.builder(currentState.metadata())
                            .putCustom(NodesShutdownMetadata.TYPE, currentShutdownMetadata.putSingleNodeMetadata(newNodeMetadata))
                    )
                    .build();
            }
            @Override
            public void onFailure(Exception e) {
                logger.error(new ParameterizedMessage("failed to put shutdown for node [{}]", request.getNodeId()), e);
                listener.onFailure(e);
            }
            @Override
            public void clusterStateProcessed(ClusterState oldState, ClusterState newState) {
                if (SingleNodeShutdownMetadata.Type.REMOVE.equals(request.getType())
                    || SingleNodeShutdownMetadata.Type.REPLACE.equals(request.getType())) {
                    clusterService.getRerouteService()
                        .reroute("node registered for removal from cluster", Priority.NORMAL, new ActionListener<ClusterState>() {
                            @Override
                            public void onResponse(ClusterState clusterState) {
                                logger.trace("started reroute after registering node [{}] for removal", request.getNodeId());
                                listener.onResponse(AcknowledgedResponse.TRUE);
                            }
                            @Override
                            public void onFailure(Exception e) {
                                logger.warn(
                                    new ParameterizedMessage(
                                        "failed to start reroute after registering node [{}] for removal",