A Descriptor class implementing weakref properties in Python 2/3