The goal is to convert the legacy hair system to the new curves object at run-time for drawing. This allows us to get rid of all drawing code that was specific to hair particle systems. Then we can focus on improving the rendering of the curves object without too much code duplication.
Previously, render engines had to iterate over all particle systems in an object to find the hair systems that had to be rendered. Now, in the particle system modifier, the final hair strands are converted into a `Curves` data-block that is then passed to render engines as a separate object.
Notes:
* For Eevee this depends on D14916 for attribute rendering.