Backups storage

Add a backups archive storage abstraction and do a little cleanup.
Extract this out so that it can shared with validate()?