Includes HABTM returns correct size now. Fixes #16032

Includes HABTM returns correct size now. It's caused by the join dependency only instantiates one HABTM object because the join table hasn't a primary key.

Fixes #16032.

### Examples:

before:
```ruby
    Project.first.salaried_developers.size # => 3
    Project.includes(:salaried_developers).first.salaried_developers.size # => 1
```
after:
```ruby
    Project.first.salaried_developers.size # => 3
    Project.includes(:salaried_developers).first.salaried_developers.size # => 3
```
Yes, I know what you worried about, but in my opinion, there is only one chance that hasn't a primary key: includes a HABTM and doesn't trigger eager loading. When it occurs, Rails calls preloader to instantiate a HABTM, preloader wouldn't join any other tables. So I think this wouldn't load the dup records. Am I right?