Fix workspace setup

Stable branch overrides for client testing, devstack-gate alternate-branch
testing, and grenade old/new branch selection are all actually the same
thing.  Update setup_project to reflect that, fixing all known bugs in
the process.  Note that some jobs will need to be updated to pass in
OVERRIDE_ZUUL_BRANCH.

This is an update to the previously reverted change to add testing and a fix
for an issue seen in production.  The resulting code is actually simpler, but
it is worth noting that the check to ensure that at some point the ZUUL_REF
for the project was checked out has been removed.

Change-Id: Ie0c4b30878896684cc2faf02dee1ea222594ae6d