cmd/jujud: synchronise state server upgrades

Use state's UpgradeInfo to synchronise state server upgrades. Overview:
    
- after restarting into a new tools version, master state servers will wait up to 15 minutes for any other state servers to indicate they are ready for upgrade. A downgrade to the previous tools version will occur if this wait times out.
- secondary state servers will wait until the master has completed its upgrade (to allow DB schema migrations to happen first)
- as state servers complete their upgrades they report this to the UpgradeInfo document. The document is archived once the last state server completes its upgrade.

Note that some refactoring to the implementation and tests is planned immediately after this PR lands. I didn't include them here because I didn't want to clutter up this PR any further.
Good catch! I went to the trouble of making the machine agent's tomb's Dying channel available especially so it could be waited on here. There's even a unit test for this which I'm sure failed when I first wrote it but it's obviously not working correctly now and as it shouldn't be passing. I will investigate.