Overlay wrapper class so that we can cache the size of the widget It will also store the ViewportLayout data because that data can't be stored per app; it must be stored per viewport overlay in case the app that made it closes.