A better csv.DictReader (supporting UTF-8 and type conversion)