2.8.0 breaks custom Field subclasses that don't check for None
My best guess is that a DB value of `None` would, in prior versions, never get passed to the `Field` subclass's `python_value` method but instead short-circuit to just returning `None`.

This is kind of a breaking change that isn't noted in the `CHANGELOG` if it proves to be what I'm experiencing. Granted I should have `None`-checked anyway but  Figured this is a good word of warning to anyone in the future.
 Might be related to #791 actually; perhaps my `python_value` method was bad all along and just never being called because of this bug! These fields are PKs of tables....
 I'm pretty sure it's been that way for a while. Not an issue, IMO.
 Fair enough. Moving from 2.7.4 --> 2.8.0 broke this for me, but so long as the solution is to fix my own f*cking code I can live with that :)

This is a lot of conjecture (and I'm moving at a pace too quick to really reproduce and test this out), but I'm pretty sure 2.8.0 breaks a Field subclass defined like this:

```
class MyField(Field):
    def python_value(value):
        return some_thing_that_cant_take_none(value)
```

I had to change a `Field` subclass of mine to work like so:

```
class MyField(Field):
    def python_value(value):
        if value is None:
            return None
        return some_thing_that_cant_take_none(value)
```

Not a big deal to me in the long run, but if it's a field that is fundamental to a data model it's a rather obscure issue.
