NULL value for BooleanField returns False instead of None
I have a User object that can has, among others, the following fields.

```
class User(BaseModel):
    class Meta:
        db_table = 'users'

    user_id = peewee.PrimaryKeyField()
    crm_id = peewee.CharField(null=True)
    username = peewee.CharField()
    password = peewee.CharField()

    lost_pw_key = peewee.CharField(null=True)
    lost_pw_key_creation = UnixtimeField(null=True)

    lat = peewee.FloatField(null=True)
    lat = peewee.FloatField(null=True)

    birthday = UnixdateField(null=True)
    responds_quickly = peewee.BooleanField(null=True)
```

I use a MySQL database. The responds_quickly field is a BOOLEAN that allows NULL values. The lost_pw_key is a VARCHAR that allows NULL.
I have created a minimal user that only has required fields set. So, both responds_quickly and lost_pw_key are NULL in the database. But whereas the CharField is evaluated to be None, the BooleanField evaluates to False, which for me is unexpected (and wrong) behavior. There is alos FloatFields and IntegerFields in the model, and all of them evaluate to None as well.

```
> u.responds_quickly
False

> u.responds_quickly is None
False

> u.lost_pw_key is None
True
```

If you do not consider this a bug, how can I differentiate between a 0 and a NULL value for BooleanFields? I gladly assist if you need further info.
