llvm_tool: cherry-pick multiple patches at once

This change will allow cherrypick_cl.py to take in multiple SHAs at once
and create local patches accordingly. All these SHAs will be applied to
the same starting SHA. The package a patch applies to will be inferred
automatically, so users no longer have to specify the package name. If a
patch changes files in more than one package, it will be split into
smaller patches by package and applied accordingly. The patch
information will be added to PATCHES.json of each affected package.

BUG=chromium:1057428

TEST=local tests.

Change-Id: I8c4d93716b7682b42c8202e8b939ca2175775fdf
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2175675
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
Tested-by: Jian Cai <jiancai@google.com>
6 files changed