Certain operations not respecting the db_value()
This error was reported via google groups.  The issue is on line 776  in `_parse_field_dictionary` which parses things like updates and inserts.  It iterates the dictinary and hands off the value to `parse_expr` before sending it to db_value() and this is where the lists are getting mangled.
 Fixed in 1d4290784a1ae183c -- see commit message for details, the tl;dr is that we don't know if we should call db_value or parse_expr first -- we call parse_expr because it is more general and powerful, but there is special logic for handling lists (which are used primarily to build up IN clauses).  This doesn't play nice w/the behavior we wanted for the csv field for instance.  The fix was basically, if the expression is not a "rich" object, to pass it thru the parse_expr.
 Is this still fixed in the latest version?

I have made a ListField, which is pretty much the same as here:

```
class ListField(Field):    
 
   def db_value(self, value):
        out = ""
        for val in value:
            out += val
            out += " "
        return out[:-1]

    def python_value(self, value):
        return value.split(" ")
```

I get the same error: peewee.OperationalError: near ",": syntax error
db_value doesnt get a list, but gets called for each item in the list Workaround:

Made a class that contains the list. Made a ClassField for this class, that uses the list to create the output.
I want to create a custom field that will be a list in python and is converted to text for database storage, but my custom field is generating invalid SQL. Here's an example to illustrate the problem I'm having.

```
from peewee import *

db = SqliteDatabase('test.db')

class CSVField(TextField):
    def db_value(self, value):
        if value:
            value = ','.join(value)
        return value

    def python_value(self, value):
        return value.split(',') if value else []

class Row(Model):
    values = CSVField()

    class Meta:
        database = db

Row.create_table(fail_silently=True)
row = Row(values=['first', 'second', 'third', 'fourth'])
row.save()
```

This will raise an exception with the message: sqlite3.OperationalError: near ",": syntax error

When I investigate, I find that the following SQL and params are being executed:

```
INSERT INTO "row" ("values") VALUES ((?,?,?,?)

['f,i,r,s,t', 's,e,c,o,n,d', 't,h,i,r,d', 'f,o,u,r,t,h']
```

Am I using this wrong? The db_value method of my custom field gets called for each item of the list separately, but I'd like to process the list as a whole. Is there a way to do this? Using a set instead of a list works fine.
