In Xcode 16 beta 4, this API was marked as back-deployed before iOS 18, but
that changed in beta 5. Because calling the older export() API now generates a
(possibly spurious) warning about the export session leaving its isolation,
introduce a wrapper that's available before iOS 18 and uses the proper
isolation.
The old UIButton API is still functional as long as we don't use
UIButton.Configuration, so we can safely ignore these warnings until we're
ready to adopt the configuration API across the codebase.
This included:
- Removing unavailable inits wholesale if no longer `required`
- Marking a few classes `final` so they could continue using
`Self(...)` rather than `OWSWhatever(...)`