On insert the container focuses initialFocus, else its first tabbable
descendant, else itself; with contain, Tab and Shift+Tab wrap inside and
focus that lands outside comes back to the first tabbable; on unmount, with
restore, focus returns to the element that had it. A dialog that is not
a native <dialog>, a menu, or a command palette takes this.
A focus scope as a Mount: on insert it remembers what was focused, focuses
an initial element inside, and with contain keeps Tab and Shift+Tab
cycling inside; on unmount it gives focus back. Nothing crosses to the
Model: which element had focus is a DOM fact, so this is element lifecycle,
not state. It emits no Messages.