NewBatchEx returns a KVBatch and an associated byte array that's pre-sized based on the KVBatchOptions. The caller can use the returned byte array for keys and values associated with the batch. Once the batch is either executed or closed, the associated byte array should no longer be accessed by the caller.