Added destructor function pointer type and free_obj_() method/macro for deallocating complex data structures.