Support PSP_O_TRUNC on Windows

In #3383, it seems like the file can vary in size.  But we weren't truncating it (on Windows) before.  Hoping this will fix that bug on Windows at least.

On Linux, our behavior is differently wrong.  PSP_O_WRONLY truncates the file, which it definitely should not.  PSP_O_CREATE should not either.  However, I'm not sure how to use fopen() to do this in a cross platform way.  I think we'll need to switch to open() / fdopen()?  Is Symbian posix?

There are other flags which I have not even tested yet, but I suspect our behavior isn't correct for them either.

-[Unknown]