Fix memory leak with unboxed caller allocated structs

Take caller-allocates into account when wrapping unboxed structures.
This will free the allocated memory when the Python object is de-alloced.