Convert BaseProvider range check to world coords.
Remove Combat.IsInRange(). Closes #3433.
Make MobileInfo.SubCellOffsets static.
Rewrite Leap activity to be more robust.

The dog will now always leap to the target
subcell (even if the target dies or moves),
and will kill whatever happens to be in the
target cell when it lands.
Add WPos.ToCPos().
Convert DrawLineToTarget to world coords.
Convert IonCannon to world coords.
CenterLocation.ToCPos() -> CenterPosition.ToCPos().
Convert Selectable to world coords.
Convert Drag to world coords.
Convert Combat.DoExplosion to world coords.
Use WVec overload of Util.GetFacing where possible.
Convert Target positions to world coords.
Target cleanup.
Centralize weapon validity check into WeaponInfo.
Ensure a valid target in move.
Ensure valid targets in Selectable.
Convert Explosion to world coords.
Add WPos/WVec.LerpQuadratic to simplify ballistic calculations.
Redo husk particle physics using LerpQuadratic.