Calling queue_free() for large numbers of siblings could previously be very slow, with the time taken rising exponentially with number of children. This looked partly due to ordered_remove from the child list and notifications.
This PR identifies objects that are nodes, and sorts the deletion queue so that children are deleted in reverse child order. This minimizes the costs of reordering.
Leftover transforms from the physics tick were being flushed during idle, which was causing problems for physics interpolation.
This PR flushes the transforms at the end of the physics tick when physics interpolation is active.