state: add Machine.WatchAddresses

Introducing a watcher for machine addresses.
We'll initially use this behind the API for
watching a relation unit's addresses, until
we have a document containing network-specific
addresses.

Also, don't update a machine doc's addresses
if they're already equal to what we want to
set them to.

Fixes https://bugs.launchpad.net/juju-core/+bug/1289815
I think the above comment is wrong. It's not reported because the machine addresses are not changing, not because the machine address is eclipsed by the provider address.