**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
v8::Isolate* isolate) {
  return mate::CreateHandle(isolate, new SystemPreferences(isolate));
}
void SystemPreferences::BuildPrototype(
    v8::Isolate* isolate,
    v8::Local<v8::FunctionTemplate> prototype) {
  prototype->SetClassName(mate::StringToV8(isolate, "SystemPreferences"));
  mate::ObjectTemplateBuilder(isolate, prototype->PrototypeTemplate())
#if defined(OS_WIN) || defined(OS_MACOSX)
      .SetMethod("getColor", &SystemPreferences::GetColor)
      .SetMethod("getAccentColor", &SystemPreferences::GetAccentColor)
#endif
#if defined(OS_WIN)
      .SetMethod("isAeroGlassEnabled", &SystemPreferences::IsAeroGlassEnabled)
#elif defined(OS_MACOSX)
      .SetMethod("postNotification", &SystemPreferences::PostNotification)
      .SetMethod("subscribeNotification",
                 &SystemPreferences::SubscribeNotification)
      .SetMethod("unsubscribeNotification",
                 &SystemPreferences::UnsubscribeNotification)
      .SetMethod("postLocalNotification",
                 &SystemPreferences::PostLocalNotification)