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. I'd do this with `Accent` too, but that would break it.
- [x] Removed all obsolete internal and private methods, all public obsolete methods use the new ones internally.
- [x] Rename `DetectAppTheme` and `ChangeAppTheme` to `DetectAppStyle` and `ChangeAppStyle`. This makes it more clear that these methods change the background AND the foreground.
- [ ] ~~I haven't tested it yet, but from looking at the code, I think `AddAccent` and `AddAppTheme` can throw a `NullReferenceException` because the underlying list is null if the `Accents` and `AppThemes` setters aren't called beforehand~~