A gateway allocator implementation that keeps an in memory list of started shard allocation
that are used as replies to the, normally async, fetch data requests. The in memory list
is adapted when shards are started and failed.
Nodes leaving and joining the cluster do not change the list of shards the class tracks but
rather serves as a filter to what is returned by fetch data. Concretely - fetch data will
only return shards that were started on nodes that are currently part of the cluster.
For now only primary shard related data is fetched. Replica request always get an empty response.
This class is useful to use in unit tests that require the functionality of
GatewayAllocator
but do
not have all the infrastructure required to use it.