Path::from_cairo() - New function to convert a librsvg path to a Cairo path
Path::from_cairo() - New function to convert a librsvg path to a Cairo path

This handles the quirk quere Cairo sometimes appends a MoveTo to
paths, and in particular, for empty paths that should have no commands
at all.

The text rendering code really needs to know whether a path produced
inked pixels or not, so that for "empty text" (an empty string, or
just whitespace) it can avoid producing a bounding box equal to a
zero-sized rectangle - it wants to really produce "no bounds" in that
case.

So, let's strip Cairo's MoveTo(0, 0) from paths that have no other commands.

Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/660>

GNOME/librsvg,GNOME/librsvg,GNOME/librsvg,GNOME/librsvg