Cache Gitlab::Geo queries

Merged Gabriel Mazetto requested to merge 1983-geo-enabled-cache into master

What does this MR do?

Caches database queries to all Gitlab::Geo related methods and expiration logic.

Are there points in the code the reviewer needs to double check?

Make sure we are handling cache correctly

Why was this MR needed?

We are using RequestStore to cache calls in within the same request, but most of these things changes very rarely. There is a lot more room to cache and prevent continuous database hits on every request.

Does this MR meet the acceptance criteria?

What are the relevant issue numbers?

Closes #1983 (closed)