Don't set data_offset and data_length if data blob is empty.

ZERO operation was failing because we were setting these fields in
delta payload.

Bug: 27858697
Bug: 27156473
Test: apply a minor v4 payload.

Change-Id: I4b6abf3dde052b181a85d417f17123788855b69c
diff --git a/payload_generator/annotated_operation.cc b/payload_generator/annotated_operation.cc
index b7f3434..e28fe85 100644
--- a/payload_generator/annotated_operation.cc
+++ b/payload_generator/annotated_operation.cc
@@ -38,6 +38,11 @@
 
 bool AnnotatedOperation::SetOperationBlob(const brillo::Blob& blob,
                                           BlobFileWriter* blob_file) {
+  if (blob.empty()) {
+    op.clear_data_offset();
+    op.clear_data_length();
+    return true;
+  }
   off_t data_offset = blob_file->StoreBlob(blob);
   TEST_AND_RETURN_FALSE(data_offset != -1);
   op.set_data_offset(data_offset);