Use fd rather than FILE * in HTTPUpload::GetFileContents

It appears that constructing a stdio_filebuf from a FILE * does a fflush(0),
which has been seen to occasionally fail EBADF (on at least W7 x64).

Both of these things seem like they might be bugs

Workarond for the moment by constructing stdio_filebuf from a fd instead.