merge 352-agent-api
wip
merge 355-remove-1.10-hacks
wip
state: AgentEntity stuff
state: AgentEntity stuff
merge 356-state-agent-entity + fix upgrader permissions
cmd/jujud: remove old upgrader; use new one
state: minor fixes for review
merge 356-state-agent-entity
gofmt
apiserver/upgrader: remove TODO
state/...: fixes for review
state: fix test
merge 356-state-agent-entity
Don't assume that any error from GetContainerProperties means the container does not exist.
[r=jtv] More precise error check in createContainer.

The Azure provider needs to create a storage container for every environment.
It does that on-demand, because it may need to happen before Bootstrap(), when
the tools are uploaded. But it must be done only once for the environment, so
the on-demand creation code checks if the container already exists.

Unfortunately, the createContainer method only distinguished two outcomes:
one, the container already exists and it's done. That part is fine. Two,
querying the container failed and so we go on to create it. That's wrong: it
fails to recognize the possibility of other errors — a potentially
self-fulfilling assumption because this way, it'll never actually report any
other errors from that call. Instead it'll move on to create the container,
which may then fail with "container already existed."

In this branch I make the check distinguish a third outcome: "other error."
[r=rogpeppe] state: add AgentEntity

It collects together the methods we expect an
agent to use on Machine and Unit.

https://codereview.appspot.com/12175043/
[r=rogpeppe] cmd/jujud: use API-based upgrader

This also has https://code.launchpad.net/~rogpeppe/juju-core/355-remove-1.10-hacks/+merge/177638
as another prerequisite which I can't add because of the only-one prereq rule
(hopefully that one will be approved and merged soon)

https://codereview.appspot.com/12183043/