A theoretical treatment of cation exchangers - I. The prediction of equilibrium constants from osmotic data