Remove node from parent when reparented.
When a control was move from one parent container to another, and that move caused the new parent container to be laid out in a different position, a code path was taken which resulted in the `VisualNode` being present under both the old and new containers.
Ensure that the node is removed from its old parent in this case.
Fixes #7381
Fixes #6103 (probably)