Snapshot/Restore: restore with wait_for_completion=true should wait for succesfully restored shards to get started

This commit ensures that restore operation with wait_for_completion=true doesn't return until all successfully restored shards are started. Before it was returning as soon as restore operation was over, which cause some shards to be unavailable immediately after restore completion.

Fixes #8340
I made it `Map`. Initializing it here doesn't make much sense in my opinion. If the snapshot is not complete we don't need the list of shards to hang around and will release the pointer to the map as soon as `execute` is over. Otherwise, we will have to wait until cluster state is published everywhere and only then release the map.