This is a revert of commit f28cc33bc3
which was a revert of the original attempt at moving to zuul._projects
(df98773573).
The issue was that the order of projects in "Determine local HEAD" was
not the same as "Update remote repository state" and we ended up
checking out the wrong thing.
To avoid this, build the projects and their current heads on the
exectutor into a separate dict, and as we iterate the projects look up
the correct values in that.
Change-Id: I0d9a66435714efe42fb653aafc6cb71b08ca6b8a