This now checks from the top to the bottom that all objects referenced by a
snapshot exist.
I'm opening the diff as a correctness first approach. Did not refactor the
common code yet.
Also i believe i'm missing the nested directory check scenario.
Related to T24843