worker/uniter/context/jujuc: symlink tools to correct destination

Hook tools were being symlinked to the unit-specific tools symlink
when the first unit was deployed. This causes problems when that
unit is destroyed, and another unit of the same service remains;
the symlinks remain broken.

We change EnsureSymlinks to dereference the target destination if
it is a symlink.

Fixes https://bugs.launchpad.net/juju-core/+bug/1391645
State: cleanup code

Remove useless code. change.C is the collection name, which is used to get the collection, which intern is used to set change.C to the collection name.
Merge pull request #1131 from waigani/code-cleanup

State: cleanup code

Remove useless code. change.C is the collection name, which is used to get the collection, which intern is used to set change.C to the collection name.
state/multiwatcher: rename Watcher to Multiwatcher
state: move Multiwatcher type into state

This PR resolves a lot of dependency issues between state and the multiwatcher.

* api no longer depends on `state`, just the `state/multiwatcher` pacakge for the `Delta` type
* the set of dependencies of `state/multiwatcher` is signficantly smaller, it effectively only contains types which are defined for use by state.
* all the _other_ watchers live in the state package, so this change unifies the one holdout, the multiwatcher.
Merge pull request #1126 from axw/lp1391645-uniter-tools-symlinks

worker/uniter/context/jujuc: symlink tools to correct destination

Hook tools were being symlinked to the unit-specific tools symlink
when the first unit was deployed. This causes problems when that
unit is destroyed, and another unit of the same service remains;
the symlinks remain broken.

We change EnsureSymlinks to dereference the target destination if
it is a symlink.

Fixes https://bugs.launchpad.net/juju-core/+bug/1391645
provider/maas: stop retrying AZs when one succeeds

Derp. Forgot to break out of loop on success.

Fixes https://bugs.launchpad.net/juju-core/+bug/1392411
state: multiwatcher tests pass
fixed tests
remove unused logger
Merge pull request #1135 from axw/lp1392411-maas-azretry-break

provider/maas: stop retrying AZs when one succeeds

Derp. Forgot to break out of loop on success.

Fixes https://bugs.launchpad.net/juju-core/+bug/1392411
Merge pull request #1134 from davecheney/215-state-multiwatcher-rename

state/multiwatcher: rename Watcher to Multiwatcher

Rename `multiwatcher.Watcher` to `multiwatcher.Multiwatcher` in preparation for moving this type into the `state` package.
Merge branch 'master' of https://github.com/juju/juju into 216-state-move-multiwatcher
Fix unused import
Merge pull request #1137 from davecheney/216-state-move-multiwatcher

state: move Multiwatcher type into state

This PR resolves a lot of dependency issues between state and the multiwatcher.

* api no longer depends on `state`, just the `state/multiwatcher` pacakge for the `Delta` type
* the set of dependencies of `state/multiwatcher` is signficantly smaller, it effectively only contains types which are defined for use by state.
* all the _other_ watchers live in the state package, so this change unifies the one holdout, the multiwatcher.
WIP action supercommand: registered with main
WIP action defined subcommand: needs testing
WIP defined testing