Start working out an upgrader worker.

From the ground up it will be an API based worker.
Right now, we just have the basic loop on a tomb until dying.
It really feels like we might want to factor out all of this
logic into a helper class, rather than re-implementing it
for each worker.
Merge in the NotifyWorker, get ready to refactor worker/upgrader to use it.
Start the Upgrader inside the NotifyWorker framework.

First bit that is going to be tricky is handling the synchronization of events.
Creating an Upgrader triggers it in the background, so you have to do
some sort of sync event in order to test that things have been done.
Right now stopping it is enough.
Start laying out the Upgrader worker, depending on the tools work.

Though tools has been approved and should be landing soon.
Merge upgrader-api-client-watcher to bring in latest changes
Merge tools-to-agent so we can use that functionality
Look at doing direct UpgradeHandler tests.
Merge trunk to bring in the version of upgrader APIs that actually landed.
Get the tests passing again, still not doing what we want, but the rough design is laid out.
Merge trunk
(broken) just snapshotting work in progress
Start working on the actual tool handling functionality.
merge trunk
merge lp:juju-core/trunk
merge lp:juju-core/trunk
worker/upgrader: rewrite
worker/upgrader: syntax error corrected
merge trunk;
wip
merge trunk