lib: Batch hash signing + split parallelism for paygen payload

Calls into paygen payload used to individually send hashes (payload +
metadata) per paygen payload to signers, this is batched now.

This will reduce the # of signing requests sent, but callers into paygen
payload should bundle/batch the payloads to sign when calling into
paygen_payload_lib.

```
Generate update payload
  w/|w/o private key
  w/|w/o verification
  w/|w/o src image
```

BUG=b:241565562
TEST=./run_tests -- -x lib/paygen/ service/ api/controller/
TEST=comment

Change-Id: I243fb6d26a151b0591811698a8cbbc36c75fab0c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3818783
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Jae Hoon Kim <kimjae@chromium.org>
Commit-Queue: Jae Hoon Kim <kimjae@chromium.org>
diff --git a/api/controller/payload_unittest.py b/api/controller/payload_unittest.py
index 2b9254d..6606d98 100644
--- a/api/controller/payload_unittest.py
+++ b/api/controller/payload_unittest.py
@@ -65,8 +65,7 @@
   def testCallSucceeds(self):
     """Check that a call is made successfully."""
     # Deep patch the paygen lib, this is a full run through service as well.
-    patch_obj = self.PatchObject(paygen_payload_lib, 'PaygenPayload')
-    patch_obj.return_value.Run.return_value = 'gs://something'
+    self.PatchObject(paygen_payload_lib, 'GeneratePayloads')
     res = payload.GeneratePayload(self.req, self.result, self.api_config)
     self.assertEqual(res, controller.RETURN_CODE_SUCCESS)
 
@@ -90,8 +89,7 @@
 
   def testMiniOSSuccess(self):
     """Test a miniOS paygen request."""
-    patch = self.PatchObject(paygen_payload_lib, 'PaygenPayload')
-    patch.return_value.Run.return_value = 'gs://minios/something'
+    self.PatchObject(paygen_payload_lib, 'GeneratePayloads')
     res = payload.GeneratePayload(self.minios_req, self.result, self.api_config)
     self.assertEqual(res, controller.RETURN_CODE_SUCCESS)