largefiles: respect store.createmode and avoid extra file copy
Before, a tempfile was used to create a temp file was created with 600
permissions and the uploaded data was written into it. This file was
then *copied* to .hg/largefiles/<hash>.
We now simply use atomictempfile to write the data to a temp file with
the right permissions and then rename that into place.
$ "$TESTDIR/hghave" execbit || exit 80
$ hg init repo
$ cd repo
$ echo foo > foo
$ chmod 644 foo
$ hg ci -qAm '644'
$ chmod 755 foo
$ hg ci -qAm '755'
reverting to rev 0
$ hg revert -a -r 0
reverting foo
$ hg st
M foo
$ hg diff --git
diff --git a/foo b/foo
old mode 100755
new mode 100644