Use OS.File.writeAtomic() for Zotero.File.putContentsAsync() if UTF-8

It might be possible to write non-UTF-8 data by passing another charset
to TextEncoder, but I haven't tried it.

Firefox 19+ only, and for now, at least, only if data is passed as
string rather than input stream