Add caching of geo data lookup by ip

External lookups were slowing page requests. Need to test on staging
before closing this.

Implements #385