Rebuild optimization for OverlayEntries and Routes

Summary

Context

Description of change

Migration guide

Timeline

References

Summary

This  optimization improves performance for route transitions,
but it may uncover missing calls to setState in your app.

Context

Prior to this change, an OverlayEntry would rebuild when
a new opaque entry was added on top of it or removed above it.
These rebuilds were unnecessary because they were not triggered
by a change in state of the affected OverlayEntry. This
breaking change optimized how we handle the addition and removal of
OverlayEntrys, and removes unnecessary rebuilds
to improve performance.

Description of change