fix(deployment): use more robust way to determine external IP of cloud
instance

Used services like ipecho.net to determine the IP. Also provided a
barebones caching for IP addresses as these services have metering on.