Query "where not in empty list" does not work as expected
The problem is python operator precedence. The following work as expected:

```python

Person.select().where(Person.name.not_in([]))

Person.select().where(~(Person.name << []))

Person.select().where(~(Person.name.in_([])))
``` Thanks for reply. I see now, I got confused by SQL operator precedence. 
Would it not be better to translate to `WHERE (NOT "t1"."name" IN ())` for empty list, similarly as it does for non-empty list?

I understand the reasoning and the problem, but I think this can potentially mask the issue until the list becomes empty one day and return unexpected results.
I was using equivalent of `.where(~Person.name << some_list)` and it behaves unexpectedly when the list is empty. See below example.

```python
import peewee
from peewee import *

db = SqliteDatabase(':memory:')


class Person(Model):
    name = CharField()

    class Meta:
        database = db


db.create_tables([Person])

Person(name="Alice").save()
Person(name="Bob").save()
Person(name="Cliff").save()

q = Person.select().where(Person.name << ['Bob'])
print(q)
# SELECT "t1"."id", "t1"."name" FROM "person" AS "t1" WHERE ("t1"."name" IN ('Bob'))
print(list(q.tuples()))
# [(2, 'Bob')]

q = Person.select().where(~Person.name << ['Bob'])
print(q)
# SELECT "t1"."id", "t1"."name" FROM "person" AS "t1" WHERE (NOT "t1"."name" IN ('Bob'))
print(list(q.tuples()))
# [(1, 'Alice'), (3, 'Cliff')]

q = Person.select().where(Person.name << [])
print(q)
# SELECT "t1"."id", "t1"."name" FROM "person" AS "t1" WHERE (0 = 1)
print(list(q.tuples()))
# []

q = Person.select().where(~Person.name << [])
print(q)
# SELECT "t1"."id", "t1"."name" FROM "person" AS "t1" WHERE (0 = 1)
# Expected: SELECT "t1"."id", "t1"."name" FROM "person" AS "t1" WHERE (1 = 1) ??? Maybe?
print(list(q.tuples()))
# []
# Expected: [(1, 'Alice'), (2, 'Bob'), (3, 'Cliff')]


print(peewee.__version__)
# 3.14.8

print(peewee.sqlite3.sqlite_version)
# 3.34.1
```