Fix and optimize FindTilesInCircle

* Added the `minRange` parameter and renamed it to `FindTilesInAnnulus`.
* For a couple of cases where an annulus was wanted, I replaced the `outer circle - inner circle` logic with a call to get the annulus.
* Fixed and optimized `NearestMoveableCell` and `NearestCell`. This changes the existing behavior where the min range was being ignored.
* The precalculated tile offsets are now sorted by distance to avoid sorting them later.
This was intentional but I'm not sure what was the original intention. If you look at the (misplaced) [comment here](https://github.com/OpenRA/OpenRA/pull/5678/files#diff-ced3a92cccafe0972d7887c91a3247efL313), it wants 10 tiles radius starting from 1.

However, unless someone tells me otherwise, it's probably better to just keep it as it was.