Insert operations of models with non-PK foreign keys fail when passing a target object instance
I have a model `A` with a `ForeignKeyField` column that uses the `field` parameter to set a non-pk reference column in the target model:

```python
class Target(Model):
    key = FixedCharField(8,unique=True)

class A(Model):
    target = ForeignKeyField(Target,field="key",lazy_load=False)
```

When trying to create instances of `A`, I can do so with `create()`, but not with the `ModelInsert`-based methods:

```python
t = Target.create(key="X")

A.create(target=t) # works

A.insert(target="X").execute() # works
A.insert(target=t).execute()   # fails
```

In the last case, the generated SQL uses the primary key of `t` instead of `t.key` because the code path in `ModelInsert` does not apply the `field` parameter of the `ForeignKeyField` to the passed-in model instance. The attached patch fixes the problem for me.