prevent tempfile path from being unlinked by garbage collection

In one of our tests, we noticed that we were getting intermittent `Errno::ENOENT: No such file or directory` errors here when reaching `::File.rename(tmp_filename, self.name)`. 

After some investigation I found that the garbage collector happened to be running the finalizer for `tmpfile` during the entry writing block in `File#commit`, which tries to unlink the file (and succeeds if you're on a non-Windows environment).