Introduce new save location system.

While only used for saves at the moment, this system will eventually
let us use multiple locations.

This also introduces the SaveRecord object, which is where save data
is stored before we write it to disk.