Fix leak in StreamingMMD that's probably caused by a CList bug.

This leak was a bit tricky to fix, because we apparently have a bug in CList (and/or the API has been used wrong).  Reference counters are too high after

```
o = new CSGObject(); // o->ref_count == 0
data->append_element(o); // o->ref_count == 1
o2 = data->get_first_element(); // o->ref_count == 2
data->delete_element(); // o->ref_count == 2
```

I think the problem is either in append_element or get_first_element, because SG_REF will be called when inserting to *and* when getting an element from the list.

That's why we have to call SG_UNREF twice to properly free the memory.