Ensure that primary key value is valid when using Custom primary keys in Ecto.Repo.Backend.insert/4

I'm using the Postgres adapter with `@schema_defaults` set to have `:string` primary keys instead of integer primary keys, which are explicitly set by my code instead of being generated by the database.

This results in the `Ecto.Repo.Backend.insert/4` function nullifying the primary key during return, since the `result` variable is an empty list under the conditions that I'm using Ecto under.

```elixir
user = %User{id: "some_id", username: "123"}
user = Repo.insert(user)  # succeeds
user.username  # => "123"
user.id  # => nil
```

The 1-line change I made should fix that issue without affecting any existing code.