Reset idempotence

Long-term state changes (bionics hunger drain, moves += speed, etc) have been moved to `Creature::process_turn`, because `Creature::reset` was originally intended to be idempotent, and wasn't because I literally just copy-pasted code from the pre-creature `player` update loop into it.

Should fix a lot of the issues mentioned in #8007 without needing to directly modify `Creature::moves` (which should eventually be made protected).

Also considering moving all the stims/hunger/thirst/fatigue code into `Creature::process_turn` now that it's a thing. Feedback welcome.