Support cross-repo-dependencies in independent pipelines

Changes supplied by the Depends-On header in git commit messages
will now additionally pull in changes from any project, on any
branch into independent pipelines.  They are considered "non-live"
changes, that is, changes that should not have any tests run on
them.

To accomodate this, the internal structure of an independent
pipeline is now a dynamically adjusting list of ChangeQueue objects
where a new ChangeQueue is created for each change added to the
pipeline (and that ChangeQueue might contain non-live changes
enqueued ahead of the change we are interested in for the purpose
of stacking commits in the associated Zuul refs).  This actually
more closely matches the visual and intuitive understanding of
independent pipelines.

Change-Id: I8ba0bc0918263f297666a50c607bca4f87c903b8
4 files changed