Add MoveAdjacentTo overload for moving within a range.
Use MoveAdjacentTo for attack activities.

Fixes #2104. Fixes #2923. Fixes #4455.
Only inset range for mobile targets.
Simplify MoveAdjacentTo pathfinding.