* Electron version: latest
* Operating system: MacOS

The TouchBar API (and MacOS in general) let's you pass an `imageNamed` param to NSImage to get the default OS image. For example: `[NSImage imageNamed:@"NSTouchBarGoUpTemplate"];` creates an NSImage with the default up chevron icon on MacOS. 

It would be pretty neat-o to allow TouchBar users to do something like this: 

```javascript
new TouchBarButton({
  icon: nativeImage.createFromMacOSNamedImage('NSTouchBarGoUpTemplate')
})
```

...and maybe that would just no-op with `nativeImage.createEmpty()` on non-MacOS platforms. 

I guess this is really bigger than just TouchBar because this API could benefit `Menu` for example as well, or anywhere else where you use `nativeImage`. 


atom/common/api/atom_api_native_image.cc
v8::Isolate* isolate, const base::DictionaryValue& options) {
  gfx::Size size = GetSize();
  int width = size.width();
  int height = size.height();
  bool width_set = options.GetInteger("width", &width);
  bool height_set = options.GetInteger("height", &height);
  size.SetSize(width, height);
  if (width_set && !height_set) {
    
    size.set_height(width);
    size = gfx::ScaleToRoundedSize(size, 1.f, 1.f / GetAspectRatio());
  } else if (height_set && !width_set) {
    
    size.set_width(height);
    size = gfx::ScaleToRoundedSize(size, GetAspectRatio(), 1.f);
  }
  skia::ImageOperations::ResizeMethod method =
      skia::ImageOperations::ResizeMethod::RESIZE_BEST;
  std::string quality;
  options.GetString("quality", &quality);
  if (quality == "good")
    method = skia::ImageOperations::ResizeMethod::RESIZE_GOOD;
  else if (quality == "better")
    method = skia::ImageOperations::ResizeMethod::RESIZE_BETTER;
  gfx::ImageSkia resized = gfx::ImageSkiaOperations::CreateResizedImage(
      image_.AsImageSkia(), method, size);
  return mate::CreateHandle(isolate,
                            new NativeImage(isolate, gfx::Image(resized)));
}
mate::Handle<NativeImage> NativeImage::Crop(v8::Isolate* isolate,