cmd/jujud: fix upgrade worker error handling

If the connection to state is lost then return an error so that the
machine agent will restart. For other errors, don't return the error
because we want the machine agent to stay running wait for user
intervention.

This change also adds tests for the handling of upgradeWorkerContext's
UpgradeComplete channel. This was previously untested.
Merge pull request #364 from mjs/upgrade-steps-worker-error-handling

cmd/jujud: fix upgrade worker error handling

If the connection to state is lost then return an error so that the machine agent will restart. For other errors, don't return the error because we want the machine agent to stay running wait for user intervention.

This change also adds tests for the handling of upgradeWorkerContext's UpgradeComplete channel. This was previously untested.