Hair and Curves need to call `DRW_curves_update` before
`geometry_steps_fill`, otherwise the copied geometry is just
uninitialized data.
However, doing so triggers an assertion:
> DRW_render_instance_buffer_finish had not been called before drawing.
This PR ports the `DRW_hair/curves_pos_buffer_get` functions to the new
`draw::Manager` API, so it can be called at any arbitrary point.
It also changes `VelocityModule::geometry_map` to use `uint64` keys
instead of `ID` pointers, since the same particle system can be used on
different objects and have multiple geometries.
Notes:
* The new functions are only used for
`VelocityModule::step_object_sync` on image renders. Using them
elsewhere would require modifying the old draw manager to do the
init/update/free setup.
* Only the compute shader version has been ported.
Pull Request: https://projects.blender.org/blender/blender/pulls/112425