A surface precipitation model for the sorption of cations on metal oxides