Instead of using CurveEval to draw the curve wire edges, use
the new Curves data-block, which is already built as part of
an object's evaluated geometry set.
This means that we can remove Curve's temporary ownership
of CurveEval for drawing (added in 9ec12c26f16ea3da1e), which
caused a memory leak as described in T96498.
In my testing this improved performance by around 1.5x during
viewport playback, back to the performance of 3.1 before the
curve data structure transition started.
The next step of using the GPU to do the final curve evaluation
for the viewport is described in T96455, but is unrelated.