shapes: implement all the Draw with a macro
shapes: implement all the Draw with a macro

I would have liked to do this with an "impl <T: BasicShape> Draw for T",
but the compiler complains of a conflict:

error[E0119]: conflicting implementations of trait `element::Draw`:
  --> src/shapes.rs:61:1
   |
61 | impl<T: BasicShape> Draw for T {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation
   |
  ::: src/filters/mod.rs:55:1
   |
55 | impl<T: FilterEffect> Draw for T {}
   | -------------------------------- first implementation here

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