introduce WriteFile to send a file to the network without having to read it into a userland buffer, see #2896