Add a convenience helper to load a file oneshot.
Dynamically manage PPGe images so 50+ are okay.

Otherwise, we try to allocate all at once and could run out of ram.

Should fix #2242.
Use ReadEntireFile() a few more places.

This fixes one or two minor memory leaks.
Merge pull request #4756 from unknownbrackets/savedata

Load savedata images dynamically, cleanup oneshot file reads