FS_U: Implemented the SaveData archive

Implemented the SaveData archive, allows some games to boot further.

Further explanation in the commit messages.
After the comments are removed, I think this class is short enough that all of `DiskArchive`, `DiskFile` and `DiskDirectory` can be merged into a single header/cpp pair. @bunnei, what do you think?