Native versions for AllocateFileRange()

Implement native versions of AllocateFileRange() for:
* Linux: posix_fallocate()
* Mac OSX: fcntl(..., F_PREALLOCATE, ...)
* Windows: SetEndOfFile()

This should prevent the double-writing fallback that is used currently.