Tweaked target selection

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.