There was an issue that if you destroyed a child view, it would destroy its
layer and remove itself from the parent, which in turn invoked updateLayerLocationIfNeeded
in parentViewDidChange.  If before updateLayerLocationIfNeeded ran a new
child was created with the same layer id, when updateLayerLocationIfNeeded
did run it would remove the new layer from the parent.

The solution was that if a view is destroyed, don't invoke updateLayerLocationIfNeeded.

- includes unit test