Fix error when dynamically removing views
What is this PR?
Currently, FlexLayout does not guarantee that the UIView hierarchy state matches the Yoga node structure. This is because nodes are only updated during the layout process by following the UIView hierarchy. When a child UIView is dynamically removed and markDirty() is called, it causes an error and terminates the program because it doesn't align with Yoga's logic.
In React Native's case, views that become leaves are fixed and used consistently, but FlexLayout allows any UIView to become a leaf. Therefore, we add defensive code to prevent logical errors.
Impact on Existing Users
Without this defensive code, errors were already being triggered by Yoga. In all other cases, the behavior remains identical to the previous version.
close #280