Read requests can now take vectored responses from the filesystem
implementation and send them to FUSE device via the writev() system call.
This allows file systems to send data without copying it into the
library-provided buffer if the data is already in memory.
The change also speeds up normal ReadFileOps as a side effect because
it removes extra memory allocations.
Fixes#109. In #102, the storage of the InMessage gets allocated every
time it's being read, which is expensive and caused issues like
https://github.com/GoogleCloudPlatform/gcsfuse/issues/563. So, this
change moves the allocation to its own function, called only once when
the struct is initialized before the reads.