* [x] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/master/CONTRIBUTING.md) for this project.
* [x] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md) that this project adheres to.
* [x] I have searched the issue tracker for an issue that matches the one I want to file, without success.

### Issue Details

* **Electron Version:**
  * all (according to docs), tested in 2.0.18 & 4.1.3
* **Operating System:**
  *  Windows

### Expected Behavior
To be able to set the working directory for applications started from the windows jump list

### Actual Behavior
It defaults to c:\windows\system32

### To Reproduce
Not really anything to do to reproduce, just look at the documentation, the parameter isn't there:
https://electronjs.org/docs/api/structures/task
https://electronjs.org/docs/api/structures/jump-list-item

### Additional Information
I'm not entirely sure you will agree that this is a bug but afaict the api seems to replicate what the underlying windows api provides so I assume it's an oversight that this parameter in particular is missing - especially considering how problematic it can be for applications to have c:\windows\system32 as their cwd.
atom/browser/ui/win/jump_list.cc
JumpListItem::JumpListItem(const JumpListItem&) = default;
JumpListItem::~JumpListItem() = default;
JumpListCategory::JumpListCategory() = default;
JumpListCategory::JumpListCategory(const JumpListCategory&) = default;
JumpListCategory::~JumpListCategory() = default;
JumpList::JumpList(const base::string16& app_id) : app_id_(app_id) {
  destinations_.CoCreateInstance(CLSID_DestinationList);
}
JumpList::~JumpList() = default;
bool JumpList::Begin(int* min_items, std::vector<JumpListItem>* removed_items) {
  DCHECK(destinations_);
  if (!destinations_)
    return false;
  if (FAILED(destinations_->SetAppID(app_id_.c_str())))
    return false;
  UINT min_slots;
  CComPtr<IObjectArray> removed;
  if (FAILED(destinations_->BeginList(&min_slots, IID_PPV_ARGS(&removed))))
    return false;
  if (min_items)
    *min_items = min_slots;
  if (removed_items)
    ConvertRemovedJumpListItems(removed, removed_items);
  return true;
}
bool JumpList::Abort() {