cmd/jujud: rationalised version number handling in upgrade-steps worker

1. Use version.Number's in logs and status output throughout instead
of version.Binary's. The series and architecture is irrelevant to the
upgrade process and including it just adds unnecessary verbosity.

2. The check for an already completed upgrade has been moved earlier
to avoid unnecessary initialisation.

3. New upgradeWorkerContext attributes have been added to make the
from version more accessible and the target version shorter to read
and write.
cmd/jujud: refactored upgrade logic

This revision is primarily about splitting up runUpgrades into smaller
pieces. This function was getting to be too large and difficult to
follow.
Merge pull request #732 from mjs/upgrade-sync-refactoring

state server upgrade sync refactoring

Various clean ups for the recent state server upgrade synchronisation work.