FS_U: Implemented the SaveData archive

Implemented the SaveData archive, allows some games to boot further.

Further explanation in the commit messages.
This puzzled me for a while. Please change it to `&ncch_header.program_id[0]` so it's more clear what you're doing. (Seemed like you were casting the program_id to a pointer and then loading from it, which was complete non-sense.)