Today in a few places we create a `new CountDown(0)`. This is kind of trappy because it will never return `true` from `#countDown()` or `#fastForward()` which risks never completing whatever action needs completing unless the caller handles the empty case specially.

We should refactor the places that do this so that they all avoid creating an empty `CountDown`, instead just handling the fact that the action is already complete:

- [ ] `TransportIndicesShardStoresAction$AsyncShardStoresInfoFetches`
- [ ] `ClearScrollController`
- [ ] `TransportBroadcastReplicationAction#doExecute`
- [ ] `Realms#usageStats`

Once we've done that, we can forbid the creation of an empty `CountDown`.
server/src/main/java/org/elasticsearch/action/admin/indices/shards/IndicesShardStoresResponse.java
/**
     * Shard store information from a node
     */
    public static class StoreStatus implements Writeable, ToXContentFragment, Comparable<StoreStatus> {
        private final DiscoveryNode node;
        private final String allocationId;
        private Exception storeException;
        private final AllocationStatus allocationStatus;
        /**
         * The status of the shard store with respect to the cluster
         */
        public enum AllocationStatus {
            /**
             * Allocated as primary
             */
            PRIMARY((byte) 0),
            /**
             * Allocated as a replica
             */
            REPLICA((byte) 1),
            /**
             * Not allocated
             */
            UNUSED((byte) 2);
            private final byte id;
            AllocationStatus(byte id) {