Fix the filesystem implementation in order to get blargSnes to run

The main reason why I changed from std::string& to char* was to make it integrate better with the caller (src/core/file_sys/directory_sdmc.cpp).
I had to allocate the two std::string there, then on return memcpy() them both to their final location inside of the Entry.
I could change back, but I think it’s much worse.