branch_stages: Specify non-branchable projects explicitly.

Before this CL, we used a heuristic to determine whether a project is
branchable. This heuristic was insufficient for certain purposes.

After this CL, we allow non-branchable projects to be explicitly
tagged as such in the manifest. This CL also combines the
not-so-nicely-documented "pin" tag in the manifest with the new tag to
expose a single tag that determines our branching strategy for any
project.

At this point, branch-util is backwards compatible. This will work with
older manifests as well.

BUG=chromium:470380
TEST=(1) (updated) unittests.
     (2) Branch successfully from updated manifests.

Change-Id: I35db7212829853de70650b0a79a597345bd383f0
Reviewed-on: https://chromium-review.googlesource.com/262644
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
Commit-Queue: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
4 files changed