Pull out IP-picking magic, allow it to be passed in instead.

This is an API-breaking change - anybody who was depending on the `ipaddress_public`/`public_ip` lookup behavior before will need to pass that in instead, e.g.

```
class {'mesos::master':
  listen_addr => $::ipaddress_public,
}
```

The reason for this change is because the logic is choosing an unfortunate IP address on my test box: facter's `$ipaddress` takes the first IP that `ifconfig` gives, which on my box is the IP assigned to the `docker0` interface. I'll be overriding this with `listen_addr => $::ipaddress_eth0`.