Refactor rsvg-path.c and rsvg-shapes.c to parse path data to an intermediate format, before converting it to a cairo path.
This will make the code for a <path> object a little bit slower, but for all other shapes faster (because there no loinger has to be created a string that is then parsed by rsvg-path.c).
A data structure that contains all original svg commands, instead of commands converted to bezier curves, is the only way to draw markers correct in all cases.
This also has the added advantage of seperating the parsing logic from the rendering logic, making both a bit clearer.
This patch is the first part, optimisations will follow.