Send GeoIP lookup result as 'GeoIP' cookie

If the incoming request did not include a cookie header with a GeoIP cookie,
perform a GeoIP look-up and send it via Set-Cookie header. The format of the
cookie is:

  Set-Cookie: GeoIP=CountryCode:City:Latitude:Longitude:AddressFamily; path=/

For example:

  Set-Cookie: GeoIP=US:San_Francisco:37.7749:-122.4194:v6; path=/

When GeoIP lookup fails, all fields are empty except the last (address family).
For example:

  Set-Cookie: GeoIP=::::v4; path=/

Setting the cookie even on lookup failures is useful for two reasons:

* It ensures the IP is not looked up again for the remainder of the current
  browser session.
* The address family can be used by JavaScript code to determine whether the
  user is possibly dual-stack, in which case a separate request can be made to
  geoip.wikimedia.org (which is IPv4-only, and thus forces dual-stack users to
  connect via IPv4).

If the response already contains a Set-Cookie header, the GeoIP cookie is added
to it.

Change-Id: Ic4d2fccbc1b5f674997e2aee6929d2f935c5a870
Format GeoIP VCL C code for consistency with Varnish

The only significant change is the removal of 'inline' from the declaration of
geo_init.

Change-Id: Iea8941896ba711ce00a927d49a35526782baa286
Fix address family determination in GeoIP cookie

Follows Iea8941896.

Change-Id: Ifae2b75c9b75e9b3a151c1b4ca71ddc4ceb0f390