added service api facade

added comments in client facade noting functions that should be moved to
the service facade

added service api client
fixed review comments
drop Uniter.service field
Move add and remove machine to subcommands.
more fixes from reviews
Tweak imports.
extract relations operations into their own type (although not yet their own *Operations*)
Merge branch 'master' into uniter-relation-ops
bump service facade version
define Relations interface
provider/ec2: break out some of the functionality in to seperate files
Merge master.
Test for blocked error.
test tweaks
Merge pull request #1289 from howbazaar/machine-command

Move add and remove machine to subcommands.

Add a subcommand for "machine", and move "add-machine" and "remove-machine" in to it.

Automatically deprecated aliases are added for the existing "add-machine" and three different variants of "remove-machine" to point to the new subcommands under "machine".

The tests for the machine subcommand completely mock out the API.

There is one test for each command in cmd/juju/machine_test.go that shows things are hooked up.
I did check that the api server has exhaustive checks around both add and remove machine already.

(Review request: http://reviews.vapour.ws/r/603/)
Merge pull request #1293 from wwitzel3/ww3-ec2-move

provider/ec2: break out some of the functionality in to seperate files

Only code change was with respect to the boilerplate for the config.
Otherwise this is just renaming and reorganizing of the ec2 provider code.
This is the first steps to making it more like the other provider implementations.

(Review request: http://reviews.vapour.ws/r/607/)
fix potential double-config-changed race
Merge pull request #1252 from mattyw/add-metric-credentials-api

Added service api facade

Added a service facade to the api. Current only implements setting metric credentials. Eventually service specific calls from the client should be moved here

(Review request: http://reviews.vapour.ws/r/563/)
Merge pull request #1292 from fwereade/uniter-relation-ops

further slim down Uniter

* dropped the .service field, which is used in a single call, at most once per run
* moved relationers and relationHooks behind new Relations interface

This is a straight refactoring and as such does not involve any new tests; I don't feel great about that, but I think  it's better to land it now and leave it exactly as badly tested as before than to spend more days putting everything in a perfect state.

(Review request: http://reviews.vapour.ws/r/606/)
cmd/jujud: fixed unreliable TestLoginsDuringUpgrade test

This test has been unreliable since the introduction of the
certupdater worker. This worker restarts the API server after upgrades
have completed, often breaking the API connection used by this test
(timing dependent).

Instead of starting the whole machine agent, TestLoginsDuringUpgrade
now just starts the specific workers required for the test, avoiding
the unwanted effects of other workers. This also makes the test
significantly faster.

Some refactoring of the machine agent was required to support running
of the specific workers required.

This fixes LP #1400358.