ArrayField does not accept tuples
So I love peewee. It's great. No problems so far, but I did just run into this strange behavior. Using an ArrayField for postgres from the playhouse (which is an awesome extension) and I had a function that output several values and I tried to use those directly. Something like:

``` python
def foo():
    return a, b, c

BarModel.create(array_field=foo())
```

In Python I generally expect that all iterables are treated more or less the same, but clearly that's not happening here because I then got this error:

``` bash
peewee.ProgrammingError: column "array_field" is of type integer[] but expression is of type record
LINE 1: INSERT INTO "barmodel" ("array_field") VALUES ((1, 2, 3)) RE...

HINT:  You will need to rewrite or cast the expression.
```

I understand the workaround: just cast it. But it's inconvenient and error prone for me to have to remember to do that every time. I realize that this may be more of a feature than a bug, but having to write `list()` around every function that returns what's already essentially a list seems super un-Pythonic to me. I suspect that this error appears for more non-list iterable types than just tuple as well, but I didn't test anything else.

Anyway, it would be really nice if we could use tuples and custom iterators to generate values for an array field. Here's a full test case (assuming an equivalent database and user set up, obviously):

``` python
from peewee import PostgresqlDatabase, Model, IntegerField
from playhouse.postgres_ext import ArrayField

DB = PostgresqlDatabase('test', user='test_user', password='test_password', port=5433)


class BarModel(Model):
    class Meta:
        database = DB

    array_field = ArrayField(IntegerField, default='{}', null=True)


def run_test():
    if BarModel.table_exists():
        BarModel.drop_table()
    BarModel.create_table()

    # this works just fine
    array_field = [1, 2, 3]
    BarModel.create(array_field=array_field)

    # this causes an error
    array_field = (1, 2, 3)
    BarModel.create(array_field=array_field)


if __name__ == '__main__':
    run_test()
```
