* Electron version: All
* Operating system: All

### Expected behavior

`process.versions.electron` should be non-configurable

### Actual behavior

```js
process.versions.electron = '99.99.99'
```

Code such as the above will override the Electron version which can stop third party modules correctly recognising the Electron version.

### How to reproduce

Run the code above^^

The reason this is an issue is that other versions such as `process.versions.node` can not be configured / changed.
atom/renderer/atom_sandboxed_renderer_client.cc
void AtomSandboxedRendererClient::InitializeBindings(
    v8::Local<v8::Object> binding,
    v8::Local<v8::Context> context) {
  auto* isolate = context->GetIsolate();
  mate::Dictionary b(isolate, binding);
  b.SetMethod("get", GetBinding);
  b.SetMethod("createPreloadScript", CreatePreloadScript);
  mate::Dictionary process = mate::Dictionary::CreateEmpty(isolate);
  b.Set("process", process);
  process.SetMethod("crash", AtomBindings::Crash);
  process.SetMethod("hang", AtomBindings::Hang);
  process.SetMethod("getHeapStatistics", &AtomBindings::GetHeapStatistics);
  process.SetMethod("getSystemMemoryInfo", &AtomBindings::GetSystemMemoryInfo);
  process.SetMethod(
      "getCPUUsage",
      base::Bind(&AtomBindings::GetCPUUsage, base::Unretained(metrics_.get())));
  process.SetMethod("getIOCounters", &AtomBindings::GetIOCounters);
  process.Set("argv", base::CommandLine::ForCurrentProcess()->argv());
  process.Set("execPath", GetExecPath());
  process.Set("pid", base::GetCurrentProcId());
  process.Set("resourcesPath", NodeBindings::GetHelperResourcesPath());
  process.Set("sandboxed", true);
  process.Set("type", "renderer");
#if defined(MAS_BUILD)
  process.Set("mas", true);
#endif
#if defined(OS_WIN)
  if (IsRunningInDesktopBridge())