This commit moves the subdivide curve node implementation to the
geometry module, changes it to work on the new curves data-block,
and adds support for Catmull Rom curves. Internally I also added
support for a curve domain selection. That isn't used, but it's
nice to have the option anyway.
The code uses a similar structure to the resample node (60a6fbf5b599)
and the set type node (9e393fc2f125). I've iterated a bit more on a
couple areas though, and the resample curves node can be restructured
to be more similar to this.
In general working on the curve domain feels slightly like a crutch that
complicates the whole algorithm. It might be interesting to making it work
on a per-segment level in the future.