Refactored to implement writeFile() in the base client.

We now make an unlikely-to-collide tmp file name, write to that,
then move into place when we're done using the client's rename().
The original client implementations of writeFile() are now named
_writeFileCore() to hint that they're not the exposed API.

The manta client is the exception.