As reported by #5521, Ordering units to walk to a point in a forest can lag terribly, as units will end up computing terribly large short paths in the forest, which can result in ComputeShortPath calls that individually take upwards of 80ms.
This can be alleviated by allowing units to stop a bit earlier. A23 handled this in UnitMotion directly, but it's better to handle this in UnitAI to avoid surprises.
This also refactors UM sending messages to UnitAI so that we may in the future push more information (in particular, the entity_id that a unit was obstructed by could be interesting for COMBAT).
This doesn't fix the possibility of lag, but it reduces its occurrence to levels that should be similar to A23 and thus acceptable enough.
Unit Pushing and pathfinder threading should help with the other cases.