cmd/jujud: upgrade status & error handling

The fact that a machine agent is upgrading is now reported in
status. Upgrade errors are now also reported in status.

If an upgrade fails completely the machine agent will now never signal
that the upgrade is done. This prevents the majority of workers from
running, preventing the agent from becoming fully operational without
the upgrade being complete (which could be dangerous). At this point
the user would need to take steps to manually recover.