Make UniqueIOBuf allocate once

Use MakeUniqueIOBuf to create a UniqueIOBuf which allocates the
descriptor and data contiguously to save on an extra memory allocation.