call destructors before Object dealloc

It obviously reduces amount of memory leaks.
The only inherited from Object class that uses destructor is `ValueHolder`. `~ValueHolder()` hasn't been called without this patch.