`model_to_dict` changes null foreign key fields to empty dicts
[This line](https://github.com/coleifer/peewee/blob/dc0ac68f3a596e27e117698393b4ab64d2f92617/playhouse/shortcuts.py#L125) causes a null foreign key field to be encoded as an empty dict, instead of the null that it is.

When I try to decode the returned dict back into a model via `dict_to_model`, it chokes on the empty dict [here](https://github.com/coleifer/peewee/blob/bf9591c2d9a11579b7472220f0427e1547b2f539/peewee.py#L1311), since it finds a dict for the related object, but the dict is empty and thus missing a primary key.  If it found a null instead, it would correctly decode the foreign key field to a null value.  I tested that theory by using a function which walks the dict returned from `model_to_dict` changing all the empty dicts back to nulls:

``` python
def nullify_empty_dicts(y):
    def is_empty_dict(x): return type(x) is dict and not x
    def handle(x):
        if type(x) is dict:
            for index in x:
                handle_index(x, index)
        elif type(x) is list:
            for index in range(len(x)):
                handle_index(x, index)
    def handle_index(x, index):
        v = x[index]
        if is_empty_dict(v):
            x[index] = None
        else:
            handle(v)
    if is_empty_dict(y):
        return None
    else:
        handle(y)
        return y
```

When I pass the result of this to `dict_to_model` it works as expected.

Thanks for taking a look!
