Tweaked upgrade target selection

upgrades.PerformUpgrade() now takes all the upgrade targets for the
machine being upgraded instead of being called once per upgrade
target. This removes the possibility of upgrade steps being run twice,
simplifies the upgrade-steps worker and also ensures upgrade steps are
run in a more readily understood order.
Remove special casing for the databaseMaster upgrade target

Nows that upgrades.PerformUpgrade() is called once with all targets
for the machine being upgraded there is no need to treat
databaseMaster as a special case. The master state server now gets
two upgrade targets: stateServer and databaseMaster. This simplifies
the code and tests.