Revise TB2::SyncStore::File to use the File::Temp object

Previously it was using tmpnam to get a name and handling the temp
filehandle itself.  This was to control the name of the file so it
would be deterministic, so each fork could find it.  This is no longer
necessary as the TB2::SyncStore::File object is created before forking.

tempnam was also used because File::Temp will lock the file otherwise
and there's no way to turn it off before 0.19 (5.8.1 comes with 0.14).
However, it can simply be immediately unlocked!

This caused problems with global object destruction on Windows, the
File::Temp object would be destroyed before the containing
TB2::SyncStore::File object.  This meant the SyncStore still had an
open filehandle to the temp file which would prevent the temp file
from being unlinked (Windows has mandatory file locking).

On the presumption that File::Temp will close its own filehandle itself
before unlinking, the new code uses a File::Temp object as the filehandle.
It locks, unlocks and reopens it as necessary.

This allows a lot of now unnecessary code to go away.

Still doesn't work on Cygwin. :(  Haven't checked on Win32 yet.