* 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
bool internal,
                    const std::string& channel,
                    const base::ListValue& args,
                    int32_t sender_id) override {
    if (!frame)
      return;
    auto* isolate = blink::MainThreadIsolate();
    v8::HandleScope handle_scope(isolate);
    auto context = frame->MainWorldScriptContext();
    v8::Context::Scope context_scope(context);
    v8::Local<v8::Value> argv[] = {mate::ConvertToV8(isolate, channel),
                                   mate::ConvertToV8(isolate, args),
                                   mate::ConvertToV8(isolate, sender_id)};
    renderer_client_->InvokeIpcCallback(
        context, internal ? "onInternalMessage" : "onMessage",
        std::vector<v8::Local<v8::Value>>(argv, argv + node::arraysize(argv)));
  }
 private:
  AtomSandboxedRendererClient* renderer_client_;
  DISALLOW_COPY_AND_ASSIGN(AtomSandboxedRenderFrameObserver);
};
}  
AtomSandboxedRendererClient::AtomSandboxedRendererClient() {
  
  NodeBindings::RegisterBuiltinModules();
  metrics_ = base::ProcessMetrics::CreateCurrentProcessMetrics();
}
AtomSandboxedRendererClient::~AtomSandboxedRendererClient() {}