Model object constructor using kwargs puts FKs in weird state on local instance
Yes, its because null=False. That is normal behavior. It happens whether or not you initialize the fk with None, if there is no value. The null False tells us that a missing value is an error.

Hey!

Found an interesting one, and I'm curious if it's intended behavior or a bug. When I create a model object using a dictionary exploded into `kwargs`, if that dictionary has a None for the value of a FK field, I get a `(ModelClass).DoesNotExist` error on the local instance of the model when trying to access that field, as opposed to just receiving `None`.

Example:

```
class User(Model):
    name = CharField()
    email = CharField()

class Tweet(Model):
    user = ForeignKeyField(User, null=False)
    contents = TextField()

t = Tweet(**{"user": None, "contents": "Some contents"})
print t.user  # (raises User.DoesNotExist, expected to print None)
```

As I'm writing this, I'm curious if the `null=False` on the `ForeignKeyField` might have something to do with it, but I imagine the accessor pattern for a ForeignKeyField doesn't change based on that; only the database behavior would be different based on that flag.

Any thoughts on the validity of this as a bug or workarounds I should consider if this is expected behavior? I'm just `try`/`except`ing in these cases and it's good enough for now, but it feels Java-y.
