Tansley Review No. 107. Heterocyst and akinete differentiation in cyanobacteria