This patch introduces a new `CircularConverter` and refactors the `LinearStepConverter` to use it. This change separates the concerns of geometric conversion from step-based conversion, leading to a more modular and maintainable design.
- **feat(converters): Add `CircularConverter`**
- A new `CircularConverter` is added to handle all conversions between linear and angular quantities (position, velocity, acceleration, jerk).
- It can be initialized from radius, diameter, or circumference.
- This centralizes the geometric conversion logic into a single, well-tested module.
- **refactor(converters): Update `LinearStepConverter`**
- The `LinearStepConverter` is refactored to compose and use the new `CircularConverter`.
- It no longer stores `radius` or `circumference` directly.
- All linear-to-angular calculations are now delegated to the `CircularConverter`, simplifying the `LinearStepConverter`'s implementation and removing duplicated code.