* refactor: give WebContentsView a native view of its own
A WebContentsView used its webContents InspectableWebContentsView as its
native view. The webContents owns that view and deletes it along with
itself, so a WebContentsView could outlive its native view and every View
method had to check for a null view.
WebContentsViewHost now owns a container view for the whole life of the
WebContentsView and presents the inspectable view in it, filling it, as
its last child. Child views added from JavaScript stay before it and so
beneath the page, as they were when added to the inspectable view. With
that, View::Host always owns its view, and the unowned mode goes away.
Ownership of the webContents no longer needs a user-data claim. The host
whose container presents the inspectable view owns it. Adopting a
webContents in a new WebContentsView moves the inspectable view into the
new container, so only that view acts on the webContents and destroys it
when collected. Two WebContentsViews that share a webContents are now
separate children, rather than one native view tracked twice.
* fix: update the overlay when a WebContentsView moves
Since a WebContentsView has its own container view, moving it without
resizing leaves the page view's bounds unchanged, so the window controls
overlay was never re-sent to the page.