factor out tree of if-statements
respect original logic; be more efficient
move variables to be more local to code doing the work
move task import loop into separate function, such that csvreader is parameterisable
factor all the error paths back together
use dict
Specify the required PostgreSQL minimum version
Merge pull request #410 from mk270/refactor-import-task3

Break up longish import tasks function; make it easier to parameterise CSV reader for other sorts of lists
user, dates and hour stats for an app
Generate user, dates, hours JSON objects for the stats page
Default Stats page per app built
Include MaxMind PyGeoIP GeoLite license
Include the Stats link in the local app nav
Show User Name, not just the ID
Minor tweaks to the CSS for better UI
Remove IPs from Anonymous users in the pie charts
Refactor stats code to its own module
Refactor stats_user to use SQL queries
Refactor stats_dates to use SQL queries
Do not show the web map if there is no GeoLite.dat

This commit removes the web map and user table for anonymous users, if the DAT
file GeoLiteCity.dat is lost. There is a README file in the /dat folder that explains
how an admin should place the file there.