Use a GQueue instead of a GList in GimpCanvasGroup, so adding items
takes constant time instead of O(n). Also, removing items was
traversing the list twice. This should generally speed up tools with
lots of canvas items.
Also, add a private pointer to the instance struct instead of using a
GET_PRIVATE() macro.
In order to avoid visually overlapping lines:
- GimpCanvasItem got a "suspend_stroking" API that allows to skip
stroking and instead starts a new sub-path
- GimpCanvasGroup got a "group_stroking" API that sets suspend_stroking
on all its children and does one stroke after calling all items'
draw().