Most of this work in this patch is building out the test framework to the point where we can write this test.
This lets clients listen for when a widget with a given global key goes through a sync operation. We'll need this for mimic to track its mimicable when it moves around the tree.