Add explicit destructors to opaque structs.

I had thought I didn't need these, but found interface was using
'free()' instead of the correct 'gp_xxx_unref()' function.