implemented the default sender
updates for latest version of trunk
some changes after reviewing
fixes from review
added tests for the default sender
moved metricsender to apiserver
upgrades: move storage migration steps to 121a2
Move responsibility for provider-state to providers
provider/common: add tests for provider-state functions
Clean up around --keep-broken, add test to openstack
provider/ec2: set UploadArches for tests

Ensure we upload AMD64 tools in tests,
regardless of host architecture.

Fixes https://bugs.launchpad.net/juju-core/+bug/1372961
Add comment about arch coverage
Merge pull request #822 from axw/lp1372961-ec2-tests-i386

provider/ec2: set UploadArches for tests

Ensure we upload AMD64 tools in tests,
regardless of host architecture.

Fixes https://bugs.launchpad.net/juju-core/+bug/1372961
Merge pull request #814 from axw/upgrades-steps-121a2

upgrades: move storage migration steps to 121a2
Address review comments
Firewaller using APIV1 when available, otherwise uses APIV0 and legacy code
Merge pull request #799 from dimitern/firewaller-apiv1

Firewaller using APIV1 when available, otherwise uses APIV0 and legacy code

Next step of supporting port ranges for charms. Renamed the
current (legacy) firewaller code to FirewallerV0, and its
tests as well moved in separate files with _v0 suffix (so it's
easier to drop them althogether).
We'll keep this legacy code for backwards compatibility
until there's an upgrade step in place that properly migrates
unit ports to machine+network port ranges in the DB.
Firewaller worker now uses API V1 if available, or falls back
to V0 transparently.
A few fixes were needed for the OpenedPortsWatcher again.
state: openedPortsWatcher no longer exposes global keys
Merge pull request #816 from axw/provider-common-providerstate

Move responsibility for provider-state to providers

Only providers using provider storage for tracking state
server instances should manage a provider-state file, so
the responsibility is moved out of provider/common and
into the individual providers. Additional helpers have
been added to provider/common to reduce code repetition.

With the removal of provider-state management from common,
there are no reason to keep "--keep-broken" or StopInstances
logic in there. Thus, bootstrap failure is now handled entirely
by the client (cmd/juju/bootstrap.go & environs/bootstrap).
Merge pull request #826 from dimitern/state-openedportswatcher-no-global-keys

state: openedPortsWatcher no longer exposes global keys

Follow-up to #799: the openedPortsWatcher in state now
reports changes as "\<machine-id\>:\<network-name\>", rather
than as global keys ("m#\<id\>#n#\<name\>"), as this exposes
internal state details unnecessarily.

NOTE: Already approved as https://github.com/dimitern/juju/pull/1
and http://reviews.vapour.ws/r/85/, just re-proposing against juju:master.