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/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.