* 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
v8::Handle<v8::Context> context,
    const std::string& callback_name,
    std::vector<v8::Handle<v8::Value>> args) {
  auto* isolate = context->GetIsolate();
  auto binding_key = mate::ConvertToV8(isolate, kIpcKey)->ToString();
  auto private_binding_key = v8::Private::ForApi(isolate, binding_key);
  auto global_object = context->Global();
  v8::Local<v8::Value> value;
  if (!global_object->GetPrivate(context, private_binding_key).ToLocal(&value))
    return;
  if (value.IsEmpty() || !value->IsObject())
    return;
  auto binding = value->ToObject();
  auto callback_key = mate::ConvertToV8(isolate, callback_name)->ToString();
  auto callback_value = binding->Get(callback_key);
  DCHECK(callback_value->IsFunction());  
  auto callback = v8::Handle<v8::Function>::Cast(callback_value);
  ignore_result(callback->Call(context, binding, args.size(), args.data()));
}
}