Add a GeoIP middleware
This commit adds a GeoIP lookup functionality to our application, implemented as a middleware. This means every request gets tagged with some geographical information inferred from its IP. I decided not to use existing IP lookups packages, as they made some assumptions about storing state in sessions.
This contains a new "geo" app, that might also be used later for storing other geographical-specific information.