General rate equation theory for gas–solid reaction kinetics and its application to CaO carbonation