Summary:
The previous approach was designed for a world that didnt happen and was extremely confusing and allowed for states that didnt make a lot of sense. E.g it was possible we were snapshotting multiple views.
The new model is much simpler. we still depend on the root view resolver to tell us about root decor views but now we just attach a predraw listener to the top most view and push out the updates. This is handled by the new class decor view tracker which is a replacement for all the observer business
Additionally we use a conflated chanel in the update queue, this means if the background processing is slow we wont keep adding new frames to the queue, we just keep 1 and the most recent frame
Partial layout traversal -> Layout traversal as traversal is now always from top to bottom of the whole application
Reviewed By: lblasa
Differential Revision: D50791527
fbshipit-source-id: 43640723aefa775aa7b74065f405cc08224ed8b8