geoip: use net_utils.get_public_ip

with backwards compat (if locally set)
geoip: added geoip-lite to optional deps

and made tests condition, based on if geoip-lite is installed
geoip: added callback, b/c that's what get_public_ip needs
Merge pull request #537 from msimerson/geoip

geoip: use net_utils.get_public_ip