### Preflight Checklist
* [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 a feature request that matches the one I want to file, without success.

### Problem Description
When working with BrowserViews, there's no way to listen to focus changes on either BrowserView itself or its WebContents.

### Proposed Solution
On BrowserWindow, there are `focus` and `blur` events. The same events need to be emitted on BrowserView/WebContents.
i.e. : 
```
browserView.on('focus', () => {
    // view is focused, do stuff
});
```
or  
```
browserView.webContents.on('focus', () => {
    // contents are focused, do stuff
});
```

### Alternatives Considered
I can't think of a good way of working around this lack of functionality
shell/browser/api/electron_api_web_contents.cc
}
 static
v8::LobjectTemplate> WebContents::FillObjectTemplate(
    v8::Isolate* isolate,
    v8::LobjectTemplate> templ) {
  gin::InvokerOptions options;
  options.holder_is_first_argument = true;
  options.holder_type = "WebContents";
  templ->Set(
      gin::StringToSymbol(isolate, "isDestroyed"),
      gin::CreateFunctionTemplate(
          isolate, base::BindRepeating(&gin_helper::Destroyable::IsDestroyed),
          options));
   We use gin_helper::ObjectTemplateBuilder instead of
   gin::ObjectTemplateBuilder here to handle the fact that WebContents is
   destroyable.
  lper::ObjectTemplateBuilder(isolate, templ)
      .SetMethod("destroy", &WebContents::Destroy)
      .SetMethod("getBackgroundThrottling",
                 &WebContents::GetBackgroundThrottling)
      .SetMethod("setBackgroundThrottling",
                 &WebContents::SetBackgroundThrottling)
      .SetMethod("getProcessId", &WebContents::GetProcessID)
      .SetMethod("getOSProcessId", &WebContents::GetOSProcessID)
      .SetMethod("equal", &WebContents::Equal)
      .SetMethod("_loadURL", &WebContents::LoadURL)
      .SetMethod("reload", &WebContents::Reload)
      .SetMethod("reloadIgnoringCache", &WebContents::ReloadIgnoringCache)
      .SetMethod("downloadURL", &WebContents::DownloadURL)
      .SetMethod("getURL", &WebContents::GetURL)