gradient: rework and simplify code
gradient: rework and simplify code

Remove the need to match on an GradientVariant enum and factor
out a Resolve trait which can later be shared with Pattern.

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