Preserve user supplied JOIN order.

JOIN order is important, previous implementation always put
string or arel joins at then end (after auto-generated association
joins).

Fixes #12953.