Make use of Session._change_state() method on every state change

darcs-hash:20090211160810-58103-2d5407d2eacf41917a3245e63f4cb4cb692446ef