This patch adds adaptive stroke sampling to Freestyle.

Adaptive stroke sampling means that the density (amount of stroke vertices) depends on the delta curvature (so the amount of curvature change). Curvy areas will get more points, and therefore detail/smoothness than straight segments.

The vertex removal is based on the Simplification stroke shader, which in turn is based on:

simplify.js by Vladimir Agafonkin, the c++ implementation is based on simplify-rs by Calvin Metcalf.

currently implemented:

- simplification of a collection of strokes
- boilerplate for a c/python stroke shader