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
Won't this break saving a state on x86_64 and then loading it on ARM?
This is a real use case.