[r=gz] state: Use machine addresses for PrivateAddress
Take addresses from the machine a unit is on in preference
to using the private address stored in unit state.
Includes new SelectInternalAddress helper for choosing a
suitable address from a list.
https://codereview.appspot.com/12752043/
R=dimitern, fwereade