The MSVS C compiler requires every struct to have at least one member. The dns_geoip_databases_t structure had one set of members for HAVE_GEOIP and a different set for HAVE_GEOIP2, and none when neither API is in use. This commit silences the compiler error by moving the declaration of dns_geoip_databases_t to types.h as an opaque reference, and commenting out the contents of geoip.h when neither version of GeoIP is enabled.