"where"-chaining does not work with negated BooleanFields
Hello,

when chaining ".where()" expressions and using negations the query works only if the negated expression comes last. See the attached example code:

``` python
from peewee import *

db = SqliteDatabase(':memory:')

class Test(Model):

    flag = BooleanField()
    num = IntegerField()

    def __repr__(self):
        return '<Test(flag=%s, num=%s)>' % (self.flag, self.num)

    class Meta:
        database = db


db.create_tables([Test])
Test.create(flag=False, num=10)
Test.create(flag=True, num=-1)
Test.create(flag=False, num=-2)
Test.create(flag=False, num=12)

# this works:
print(list(Test.select().where((~Test.flag) & (Test.num > 0))))
print(list(Test.select().where((Test.num > 0) & (~Test.flag))))
print(list(Test.select().where(Test.num > 0).where(~Test.flag)))
print(list(Test.select().where(Test.flag == False).where(Test.num > 0)))

# this throws "AttributeError: 'NoneType' object has no attribute '_negated'"
print(list(Test.select().where(~Test.flag).where(Test.num > 0)))
```

Tested with Python 3.4.2 and peewee 2.4.6 on Mac OS X 10.10.2
