Merge pull request #141 from rtilder/master

GeoIP lookups for issue #92
conform to arbitary hanno-style :)
Ryan won the snark battle - be consistent :)
Avoid extra virtualenv on travis, try to get it to use the right Python
try to trick pip into installing argparse
use unittest2 under Python 2.6 to get nicer test assertions
Add / centralize degree <-> spatial resolution helpers.

ichnaea.models.DEGREE_DECIMAL_PLACES
ichnaea.models.DEGREE_SCALE_FACTOR
ichnaea.models.from_degrees
ichnaea.models.to_degrees
Add CellKey helpers to ichnaea.tasks, tidy up a bit.
Fix two typos in comments.
Note which keys are expected to be moving in testcase.
Add ichnaea.models.CellBlacklist.
Implement moving-cell blacklisting, close #134.
Calculate and store range field as 1/2 bounding box diagonal, close #135.
Start doing cell location estimates for single observations.

About 50k out of 970k cells have only a single observation. So far we
didn't do estimates for them at all.
Upgrade local pip from the one virtualenv installed.
Fix typo in ichnaea.ini: s/GeoLiteCity/GeoIPCity/
Merge pull request #150 from graydon/geoip-lite-vs-city

Fix typo in ichnaea.ini: s/GeoLiteCity/GeoIPCity/
Merge pull request #149 from graydon/pip-upgrade-pip

Upgrade local pip from the one virtualenv installed.
Merge pull request #144 from graydon/bug-134-add-cell-blacklist

Bug 134 add cell blacklist
Merge pull request #147 from graydon/bug-135-estimate-range-field

Bug 135 estimate range field