* 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.h
std::string ToDataURL(mate::Arguments* args);
  bool IsEmpty();
  gfx::Size GetSize();
  float GetAspectRatio();
  void AddRepresentation(const mate::Dictionary& options);
  
  void SetTemplateImage(bool setAsTemplate);
  
  bool IsTemplateImage();
#if defined(OS_WIN)
  base::FilePath hicon_path_;
  std::map<int, base::win::ScopedHICON> hicons_;
#endif
  gfx::Image image_;
  DISALLOW_COPY_AND_ASSIGN(NativeImage);
};
}  
}  
namespace mate {
template<>
struct Converter<mate::Handle<atom::api::NativeImage>> {
  static v8::Local<v8::Value> ToV8(
      v8::Isolate* isolate,
      const mate::Handle<atom::api::NativeImage>& val);
  static bool FromV8(v8::Isolate* isolate, v8::Local<v8::Value> val,
                     mate::Handle<atom::api::NativeImage>* out);
};
}  
#endif