When asserting the snapshot is the one expected, this now check the references
targeted by the snapshot do exist.
This also checks that the alias present in the snapshot actually target
branches in the snapshot.
For now, those check concern only release and revision objects (not yet up to
directories and contents).
The function still allows some branches to not be resolvable. Like for example
the "evaluation" branch in the case of the nixguix loader.
Related to T2483
Depends on D3473