In preparation for a future patch where UnitMotion will no longer stop on its own (fixing a large number of cases where units get stuck), I need unitAI to handle its own stopping.
However, this highlights that most states don't actually order moving - usually the Order calls "MoveTo..." and the state just assume that.
This seems like putting logic in the wrong place - the State should decide if its want to move, and where, based on its order. This also applies to other state changes that orders where doing (see Unpacking, ungarrisonning).
This diff cleans things up: Orders are now (almost) solely in charge of accepting / refusing the order and that's it.
(This incorporates a resource-returning code repetition cleanup too)