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.
The old loop excluded the max range. I doubt changing it matters here but I wanted to check it was intended.