Rewrite GC as a tracing GC.
Rewrite GC as a tracing GC.

This detected one bug, in PersistentList.__setitem__: a missing xdecref.

I also renamed _finalize to _deallocate, since that is more descriptive.  What
Python calls 'finalization' is really the __del__ method or equivalent, which
all happens on the python side in pynvm.pmemobj code.  The only thing happening
on the pmem side is the deallocation of the memory.

There aren't any tests of the GC itself yet.

bitdancer/pynvm