Finalize the hair & curves implementation for EEVEE Next.
- Ensure Hair particles have their own `ResourceHandle` and
`ObjectKey`, so Motion Blur works correctly.
(Note that the `ObjectHandle` and the `ObjectKey` are always created
"on the fly" instead of being stored as `DrawData`, since it's not
supported for particle system `ID`s).
- The (unused) `ObjectKey::use_particle_hair` has been replaced by an
integer `sub_key`, so multiple particle systems per object can be
supported.
- `VelocityModule::step_object_sync` now has 2 extra optional
parameters for syncing Hair particle systems.
- Update `DRW_curves_update` so it's safe to call it from "Next"
engines.
- Disable the `sampling.reset()` call from `step_object_sync`, since
`is_deform` is always true for objects with particle modifiers, and
this causes the renderer to get stuck at sample 1.
Pull Request: https://projects.blender.org/blender/blender/pulls/109833