Load savedata images dynamically, cleanup oneshot file reads

This manages the textures for savedata icons better, so that we shouldn't run out of memory even if there are a bunch of savedata items.

Also adds a simpler interface to read a file to a std::vector, and makes several things use it.  I'm pretty sure I saw at least two memory leaks along the way (font loading and an sfo load somewhere.)

-[Unknown]