Refactor the ThemeManager API

Her is my proposal for the new `ThemeManager` API:

- [x] `AppTheme` doesn't inherit from `Accent` anymore, as they are unrelated. I also made it immutable, which makes it impossible to forget to set a property.
- [x] Removed all obsolete internal and private methods, all public obsolete methods use the new ones internally.
- [ ] Rename `DetectAppTheme` and `ChangeAppTheme` to `DetectLookAndFeel` and `ChangeLookAndFeel`. This makes it more clear that these methods change the background AND the foreground.
- [ ] Something else, but I forgot what it was