**Is your feature request related to a problem? Please describe.**
Electron has an API which works on macOS for detecting when the system is in Dark Mode.
[Windows 10 also has a dark mode setting](https://www.digitaltrends.com/computing/how-to-enable-dark-mode-in-windows-10/). It would be useful if the same Electron API also worked on Windows.

**Describe the solution you'd like**
1. The `systemPreferences.isDarkMode()` method should work on Windows.
2. Ideally a way of subscribing to change events, equivalent to `systemPreferences.subscribeNotification('AppleInterfaceThemeChangedNotification', callback)`. Or perhaps the `color-changed` event (or another event) would be fired by `systemPreferences`.

**Additional context**
On Windows the state of the dark mode setting [is stored in the](https://stackoverflow.com/a/51336913/365069) `HKCU(HKLM)\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize\AppsUseLightTheme` registry key.

shell/browser/api/atom_api_system_preferences.cc
.SetMethod("getMediaAccessStatus",
                 &SystemPreferences::GetMediaAccessStatus)
      .SetMethod("askForMediaAccess", &SystemPreferences::AskForMediaAccess)
#endif
      .SetMethod("isInvertedColorScheme",
                 &SystemPreferences::IsInvertedColorScheme)
      .SetMethod("isHighContrastColorScheme",
                 &SystemPreferences::IsHighContrastColorScheme)
      .SetMethod("isDarkMode", &SystemPreferences::IsDarkMode)
      .SetMethod("getAnimationSettings",
                 &SystemPreferences::GetAnimationSettings);
}
}  
}  
namespace {
using electron::api::SystemPreferences;
void Initialize(v8::Local<v8::Object> exports,
                v8::Local<v8::Value> unused,
                v8::Local<v8::Context> context,
                void* priv) {
  v8::Isolate* isolate = context->GetIsolate();
  mate::Dictionary dict(isolate, exports);
  dict.Set("systemPreferences", SystemPreferences::Create(isolate));
  dict.Set("SystemPreferences", SystemPreferences::GetConstructor(isolate)
                                    ->GetFunction(context)
                                    .ToLocalChecked());
}
}  
NODE_LINKED_MODULE_CONTEXT_AWARE(atom_browser_system_preferences, Initialize)