Yet another case of redundant state removal cleaning up code and letting us make things better in the future.
UnitMotion stores a target (see D1887), which isn't equivalent to a pathing goal. Several functions need to be able to compute / update a Goal from said Motion Request. Instead of doing this weirdly, we'll just recompute a goal from the motion request whenever necessary.
This makes the code more flexible since one doesn't have to be careful about whether one uses the move request data or the goal data, and it lets one update the goal more sanely. And it removes state.
This is a slightly extensive change as I merge the "goal computation" logic from MoveToTargetRange and MoveToPointRange together - needs to be reviewed.