Use the newer more generic sampling and interpolation functions
developed recently instead of the `CurveEval` type. Functions are split
up a bit more internally, to allow a separate mode for supplying the
curve index directly in the future (T92474).
In one basic test, the performance seems mostly unchanged from 3.1.
---
This patch also includes two semi-related changes that I'll commit separately:
- Properly tilt normals if the tilt attribute exists (have to add some tests for this!)
- Rename linear interpolation functions to make their expectation of sorted inputs clearer.