The flag syncing code expects to find collection flags in same view layer
before and after the move, it even has an assert for it. However, there is
one case where this doesn't happen, when dragging a collection that exists
in two scenes to the scene collection. Because the scene collection is
always local to each scene, its sub-heirarchy doesn't copy between scenes
created with "Linked Copy", so the dragged collection doesn't exist in the
second scene, and the corresponding CollectionFlag isn't found.
This patch removes this assert, frees the temporary flag structs
separately, and updates some comments with this information.