Backups storage

Add a backups archive storage abstraction and do a little cleanup.
Why is Origin separate from Metadata? It seems an Origin is created and immediately used to create Metadata. I don't see Origin being used on it's own. The fields on Origin could easily be part of Metadata and making any code that creates Metadata a little simpler.

I'd be interested to hear why you decided to do it this way.