Adds a test for nested belongs to associations
Adds a test for nested belongs to associations

This commit adds a test that saves the "deepest" model in a `belongs_to`
association chain. For example, we have the following models defined in
`ecto_has_many_test.exs`:

  * `package_status` belongs to a `package`
  * `package` belongs to a `shipment`

When calling `create/1` with `package_status`, the associated `package`
and `shipment` are also created.

However, we get something like this when inspecting the resulting
`package_status` (take a close look at the associated ids):

```elixir
%ExMachina.EctoHasManyTest.PackageStatus{__meta__: #Ecto.Schema.Metadata<:loaded>,
 id: 8,
 package: %ExMachina.EctoHasManyTest.Package{__meta__: #Ecto.Schema.Metadata<:loaded>,
  description: "Package that just got ordered",
  id: 3,
  invoices: #Ecto.Association.NotLoaded<association :invoices is not loaded>,
  shipment: %ExMachina.EctoHasManyTest.Shipment{__meta__: #Ecto.Schema.Metadata<:loaded>,
   id: 1, name: "I'm nested",
   packages: [%ExMachina.EctoHasManyTest.Package{__meta__: #Ecto.Schema.Metadata<:loaded>,
     description: "Package that got shipped",
     id: 1,
     invoices: #Ecto.Association.NotLoaded<association :invoices is not loaded>,
     shipment: #Ecto.Association.NotLoaded<association :shipment is not loaded>,
     shipment_id: 1,
     statuses: [%ExMachina.EctoHasManyTest.PackageStatus{__meta__: #Ecto.Schema.Metadata<:loaded>,
       id: 1,
       package: #Ecto.Association.NotLoaded<association :package is not loaded>,
       package_id: 1, status: "ordered"},
      %ExMachina.EctoHasManyTest.PackageStatus{__meta__: #Ecto.Schema.Metadata<:loaded>,
       id: 2,
       package: #Ecto.Association.NotLoaded<association :package is not loaded>,
       package_id: 1, status: "sent"},
      %ExMachina.EctoHasManyTest.PackageStatus{__meta__: #Ecto.Schema.Metadata<:loaded>,
       id: 3,
       package: #Ecto.Association.NotLoaded<association :package is not loaded>,
       package_id: 1, status: "shipped"}]},
    %ExMachina.EctoHasManyTest.Package{__meta__: #Ecto.Schema.Metadata<:loaded>,
     description: "Package that got shipped",
     id: 2,
     invoices: #Ecto.Association.NotLoaded<association :invoices is not loaded>,
     shipment: #Ecto.Association.NotLoaded<association :shipment is not loaded>,
     shipment_id: 1,
     statuses: [%ExMachina.EctoHasManyTest.PackageStatus{__meta__: #Ecto.Schema.Metadata<:loaded>,
       id: 4,
       package: #Ecto.Association.NotLoaded<association :package is not loaded>,
       package_id: 2, status: "ordered"},
      %ExMachina.EctoHasManyTest.PackageStatus{__meta__: #Ecto.Schema.Metadata<:loaded>,
       id: 5,
       package: #Ecto.Association.NotLoaded<association :package is not loaded>,
       package_id: 2, status: "sent"},
      %ExMachina.EctoHasManyTest.PackageStatus{__meta__: #Ecto.Schema.Metadata<:loaded>,
       id: 6,
       package: #Ecto.Association.NotLoaded<association :package is not loaded>,
       package_id: 2, status: "shipped"}]}]}, shipment_id: 1,
  statuses: [%ExMachina.EctoHasManyTest.PackageStatus{__meta__: #Ecto.Schema.Metadata<:loaded>,
    id: 7,
    package: #Ecto.Association.NotLoaded<association :package is not loaded>,
    package_id: 3, status: "ordered"}]}, package_id: 3, status: "ordered"}
```

We see that the `package (id:3)` associated with the `package_status (id: 8)` via
`belongs_to` *does not* contain the `package_status (id:3)` in its
`has_many` association.

This might be unexpected to users. We should probably look at it closely
in the future.

thoughtbot/ex_machina