Fix populating more than 2 associations with criteria

If `Model.populate(keyName, criteria)` called N times, there might be N ~ 2N joins. If there is a criteria for each population, only the first join or the second join will use the criteria, and it will be override during the next call of `Model.populate()`, see lines between 256 ~ 261.

This fix let each join to use the correct criteria when there are more than 2 joins.