**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("subscribeLocalNotification",
                 &SystemPreferences::SubscribeLocalNotification)
      .SetMethod("unsubscribeLocalNotification",
                 &SystemPreferences::UnsubscribeLocalNotification)
      .SetMethod("postWorkspaceNotification",
                 &SystemPreferences::PostWorkspaceNotification)
      .SetMethod("subscribeWorkspaceNotification",
                 &SystemPreferences::SubscribeWorkspaceNotification)
      .SetMethod("unsubscribeWorkspaceNotification",
                 &SystemPreferences::UnsubscribeWorkspaceNotification)
      .SetMethod("registerDefaults", &SystemPreferences::RegisterDefaults)
      .SetMethod("getUserDefault", &SystemPreferences::GetUserDefault)
      .SetMethod("setUserDefault", &SystemPreferences::SetUserDefault)
      .SetMethod("removeUserDefault", &SystemPreferences::RemoveUserDefault)
      .SetMethod("isSwipeTrackingFromScrollEventsEnabled",
                 &SystemPreferences::IsSwipeTrackingFromScrollEventsEnabled)
      .SetMethod("getEffectiveAppearance",
                 &SystemPreferences::GetEffectiveAppearance)
      .SetMethod("_getAppLevelAppearance",
                 &SystemPreferences::GetAppLevelAppearance)
      .SetMethod("_setAppLevelAppearance",
                 &SystemPreferences::SetAppLevelAppearance)
      .SetProperty("appLevelAppearance",
                   &SystemPreferences::GetAppLevelAppearance,
                   &SystemPreferences::SetAppLevelAppearance)
      .SetMethod("getSystemColor", &SystemPreferences::GetSystemColor)
      .SetMethod("canPromptTouchID", &SystemPreferences::CanPromptTouchID)
      .SetMethod("promptTouchID", &SystemPreferences::PromptTouchID)
      .SetMethod("isTrustedAccessibilityClient",
                 &SystemPreferences::IsTrustedAccessibilityClient)