Backups storage

Add a backups archive storage abstraction and do a little cleanup.
The main reason is that this condition should never happen.  The values in the doc should have already been checked for correctness.  So an error here indicates a developer "error".  :)  A panic seems appropriate in that case.  We could just ignore the error return, but I figured this would be safer.  Passing the error out to the caller didn't make sense to me because the caller shouldn't have to worry about addressing this particular error.  Regardless, I have clarified the message.