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.
Updated commit from @bigxiang commit dbaa837

Fixes #16032.

Examples:

    before:

    Project.first.salaried_developers.size # => 3
    Project.includes(:salaried_developers).first.salaried_developers.size # => 1

    after:

    Project.first.salaried_developers.size # => 3
    Project.includes(:salaried_developers).first.salaried_developers.size # => 3
If you remove :developers, preload association fails