Add a file storage abstraction.

This is for the work on backups.
I'm fine with that.