### 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.h
#if defined(TOOLKIT_VIEWS) && !defined(OS_MAC)
  ui::ImageModel GetDevToolsWindowIcon() override;
#endif
#if defined(OS_LINUX)
  void GetDevToolsWindowWMClass(std::string* name,
                                std::string* class_name) override;
#endif
  void ColorPickedInEyeDropper(int r, int g, int b, int a);
  
  void OnDevToolsIndexingWorkCalculated(int request_id,
                                        const std::string& file_system_path,
                                        int total_work);
  void OnDevToolsIndexingWorked(int request_id,
                                const std::string& file_system_path,
                                int worked);
  void OnDevToolsIndexingDone(int request_id,
                              const std::string& file_system_path);
  void OnDevToolsSearchCompleted(int request_id,
                                 const std::string& file_system_path,
                                 const std::vector<std::string>& file_paths);
  
  void SetHtmlApiFullscreen(bool enter_fullscreen);
  
  void UpdateHtmlApiFullscreen(bool fullscreen);
  v8::Global<v8::Value> session_;
  v8::Global<v8::Value> devtools_web_contents_;
  v8::Global<v8::Value> debugger_;
  std::unique_ptr<ElectronJavaScriptDialogManager> dialog_manager_;
  std::unique_ptr<WebViewGuestDelegate> guest_delegate_;