Removing nil keys and values from insert cluases

So I ran into this issue, say we have a table:

```sql
CREATE TABLE items( id integer serial, data text, created timestamp default CURRENT_TIMESTAMP)
```

And I have a model
```elixir
 defmodule Item do
    use Ecto.Model
    queryable "items" do
      field :data, :string
      field :created, :datetime
    end
  end
```

I and I try to create a new item like so:
```elixir
item = Item.new(data: "hello world!")
Repo.create(item)
```

I expect to get back an item like the following (excuse me if I messed up EctoDate its from memory)
```elixir
[id: 1, data: "Hello World", created: EctoDate[date[year: 2013, month: 12, day: 9], time[hour: 8, min: 25, sec 20]]]
```

Instead I get
```elixir
[id 1, data: "Hello World", created null]
```
Because the ecto postgres adapter here https://github.com/elixir-lang/ecto/blob/master/lib/ecto/adapters/postgres/sql.ex#L75 joins on all of the fields.

My proposed solution is to ignore fields set to NIL on insert and let the database handle that case. 

I ran all tests following the contribution guidelines before pushing. 
```
[10:32:28] <ericmj>	 peregrine81: you probably want to change the adapter to return the full entity instead
[10:33:21] <ericmj>	 you can use __entity__(:allocate, ...) to create an entity from a keyword list, there should be examples in the postgrex.ex file
[10:33:52] <ericmj>	 peregrine81: right now adapter.create just returns the primary key and repo.create puts the key on the entity
[10:34:31] <ericmj>	 so you want change Postgres.create and Backend.create
```
#### TODO:
- [x] Update Postgres.create to return entity with the rows instead of key on entity

- [x] Update Backend.create to return entity with the rows instead of key on entity
- [x] Fix 38 failing integration tests