Write pref/save files into legal directories on Win32.

(Previously, we assumed that our Data directory was writable)

Also, unify our pref/save file handling code between platforms.

Also, files saved out during startup are now loaded from the MAIN GAME's
data directory, instead of the root of the data directory.  This means
that default shaders need to be moved into Data/MainGame/Shaders/ .