ENH: Ghost PyVTKObjects with special attrs when deleting them.
To make sure that special PyVTKObject attributes (i.e. dict entries or custom classes) aren't lost when the object goes out of scope, make a ghost of the object if: a) references to it still exist within VTK and b) it has custom attributes. The ghost is brought back to life if the VTK pointer returns to python. If the VTK pointer becomes invalid, the ghost is erased. Pointer validity is checked via weak pointers.