Preserve user supplied JOIN order.

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

Fixes #12953, #15488.