**Is your feature request related to a problem? Please describe.**
The Caps Lock and Fn keys are useful to some, and not others. I would greatly enjoy being able to use these keys as modifiers for something more useful to me.

**Describe the solution you'd like**
Add global shortcuts support for the cap locks and fn keys. While these keys are not useless and are not proper modifier keys, I feel that the design choice should be left to the app developer.

**Describe alternatives you've considered**
The only alternative would be to use a keypress listener/sender to 'remap' the key to something Electron supports; or substitute electron's shortcut functionality completely.

**Additional context**
Using a 3rd party keypress listener does not feel safe.
atom/common/keyboard_util.cc
return ui::VKEY_VOLUME_UP;
  } else if (str == "volumedown") {
    return ui::VKEY_VOLUME_DOWN;
  } else if (str == "medianexttrack") {
    return ui::VKEY_MEDIA_NEXT_TRACK;
  } else if (str == "mediaprevioustrack") {
    return ui::VKEY_MEDIA_PREV_TRACK;
  } else if (str == "mediastop") {
    return ui::VKEY_MEDIA_STOP;
  } else if (str == "mediaplaypause") {
    return ui::VKEY_MEDIA_PLAY_PAUSE;
  } else if (str == "printscreen") {
    return ui::VKEY_SNAPSHOT;
  } else if (str.size() > 1 && str[0] == 'f') {
    
    int n;
    if (base::StringToInt(str.c_str() + 1, &n) && n > 0 && n < 25) {
      return static_cast<ui::KeyboardCode>(ui::VKEY_F1 + n - 1);
    } else {
      LOG(WARNING) << str << "is not available on keyboard";
      return ui::VKEY_UNKNOWN;
    }
  } else {
    if (str.size() > 2)
      LOG(WARNING) << "Invalid accelerator token: " << str;
    return ui::VKEY_UNKNOWN;
  }
}
}  
ui::KeyboardCode KeyboardCodeFromCharCode(base::char16 c, bool* shifted) {