I need [Display](https://github.com/electron/electron/blob/master/docs/api/structures/display.md) to expose a boolean (at least) indicating whether the display is the primary or a secondary display, and whether it is a laptop's internal or external display.

The current documentation for [screen](https://github.com/electron/electron/blob/master/docs/api/screen.md) suggests finding the primary display by finding the display with its top left corner at the origin of the coordinate space, but I do not expect this to work in unusual display layouts. There appears to be no current method for determining which display(s) are internal or external.

On Mac the primary display is always NSScreen.screens()[0] and other screens are non-primary, which I think can already be detected in Electron from the ordering of electron.screen.getAllDisplays(). On Windows screens can appear in arbitrary order and [Screen.Primary](https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.screen.primary) indicates whether a screen is primary or secondary.

On Mac the internal-ness of a display can be determined with [CGDisplayIsBuiltin](https://developer.apple.com/documentation/coregraphics/1454566-cgdisplayisbuiltin?language=objc). On Windows... I'm not sure if/how this can be accomplished.
atom/common/native_mate_converters/gfx_converter.cc
const gfx::PointF& val) {
  mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate);
  dict.SetHidden("simple", true);
  dict.Set("x", val.x());
  dict.Set("y", val.y());
  return dict.GetHandle();
}
bool Converter<gfx::PointF>::FromV8(v8::Isolate* isolate,
                                    v8::Local<v8::Value> val,
                                    gfx::PointF* out) {
  mate::Dictionary dict;
  if (!ConvertFromV8(isolate, val, &dict))
    return false;
  float x, y;
  if (!dict.Get("x", &x) || !dict.Get("y", &y))
    return false;
  *out = gfx::PointF(x, y);
  return true;
}
v8::Local<v8::Value> Converter<gfx::Size>::ToV8(v8::Isolate* isolate,