Fix crashes with moving splines

This arose because SplinePoint data was being held in glib lists, which
were not scanned by libgc, and so the SplinePoints were assumed to be
garbage, and collected.

The fix should have been to make glib use libgc, but the ability to
change the allocator was broken in glib 2.36:
https://bugzilla.gnome.org/show_bug.cgi?id=701694

Hence, we have to avoid storing data blocks allocated by libgc in glib
data structures.

Hence, use gnulib lists instead.