Test changes in dependency order.

For dependent change queues, test the changes in dependency order,
as reported by gerrit.

Effectively, this means that a change is enqueued only if:
  * it can be merged
  * the change it depends on has been merged or:
    * can be merged
    * is the current patchset

Also, once a change is enqueued, changes that depend on it are
examined to see if they can be merged (assuming this one succeeds).
If so, they are enqueued.

Change-Id: I917b2a2d1fc94c3aa2de406ed4b9f795a8abb079
4 files changed