Excluded the primary key from fields to be updated.

This happened in case the primary key was a virtual field and led to an
extra field update (although the value did not change anyway) but in some
case with deferred fields and concrete model inheritance it lead to extra
queries being issued.

This change leaves us with only one failing test on SQLite.
Fixed virtual primary keys in database creation.

This fixes the final test failing on SQLite and gives a successful test
run once again.