Add script for preprocessing geo-ip data for biquery.

Summary:
The CSV files we downloaded that list locations for every IP address range
can't be used directly for bigquery.  This is because bigquery can join only on
equality, and we need some way to do this for every IP address appearing in a
log.

The strategy is to join on the value of the first byte of an IPv4 address.
However, some IP address ranges appearing in the location list span multiple
values of the first byte, which would cause this join to fail.

This preprocessing script detects these and adds a new entry in the location
table for each value of the first byte appearing in an IP address range.

Example:
If we had an IP address range 1.0.0.0-3.255.255.255 mapping to the country of
Australia, then our log entries from IP addresses 2.x.x.x and 3.x.x.x would not
be mapped to a country.

In this case, this script would add additional entries 2.0.0.0-2.255.255.255
and 3.0.0.0-3.255.255.255 so that all values of the first byte within the
original range have an entry in the tables mapping IP to location.

Test Plan:
- Checked manually that output files upload to bigquery without error.

- Checked manually that a sample of IP ranges that do not span multiple values
  of the first byte are unchanged in the output.

- Checked manually that a sample of IP ranges that do span multiple values of
  the first byte are given extra entries in the output.

Reviewers: jace

Reviewed By: jace

Differential Revision: http://phabricator.khanacademy.org/D6720