Fix copy-on-write for shapes
Now the shapes got a new idiom: "s-pointers". That is, the shapes may
have two private pointers: d-pointer and s-pointer. The former one is
never shared between multiple shapes, and the latter one is implicitly
shared between multiple copies of the shape.
Still TODO:
- KoPathShape doesn't support sharing atm, because its internal KoPathPoint elements have a link to the parent shape. It means that we cannot reuse these points in cloned shapes.