Fix UTF-8 wrapper for csv modules.

Check if an item is a (base)string before encoding/decoding it.
This avoids the problems of CSV fields being systematically quoted
even if you set something like csv.QUOTE_NONNUMERIC

Previously, the unicode(x) (or perhaps x.encode()) was causing the
field to be treated as text by the writer and hence quoted.