Core: Use a std::string in EXI_DeviceIPL instead of a char buffer

Allows getting rid of extra code.

Also removed the dumb downcast within ChunkFile.h now that we've bumped state version