Computational complexity of dynamical systems: the case of cellular automata