This allows us to freely make changes to the backend without being constrained
to supporting the pre-SwiftUI frontend (for iOS). On macOS, 11.3 fixed some
bugs that required ugly hacks to work around.
We were constrained to class types when we had to support Objective-C but now
that the backend is in Swift, we can use structs which work much better with
SwiftUI (without lots of hacks).
We attempt to isolate each individual view to a single observable object
representing the single source of truth for a sub-section of settings.
At this point, we ensure UTM can compile but many functionality are broken
until the backend rewrite is complete.