Creating a UIImageView outside a view hierarchy now crashes on iOS 18. We can
avoid this offscreen rendering technique by removing UIImage.asTintedImage(),
configuring the tint colour and template rendering on the UIImage directly, and
rendering with UIGraphicsImageRenderer instead of lower-level Core Graphics
APIs.
Splits `dequeueReusableCell(_:for:isRegistered:)` into two different methods,
overloaded on the presence of the `indexPath` parameter, allowing the `indexPath`
variant to return a non-optional value.
Also removes the `isRegistered` parameter, which was never passed by callers
and thus always defaulted to `true`.
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.
OWSMath.swift overlaps somewhat with Math+OWS.swift but no worse than
OWSMath.h did previously. There are future refactoring efforts that
should occur there to use more of the extensions of Math+OWS.swift and
less of the extensions from OWSMath.swift