* 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/common/node_bindings.cc
uv_stop(loop);
  uv_walk(loop,
          [](uv_handle_t* handle, void*) {
            if (!uv_is_closing(handle)) {
              uv_close(handle, nullptr);
            }
          },
          nullptr);
  
  
  for (;;)
    if (!uv_run(loop, UV_RUN_DEFAULT))
      break;
  DCHECK(!uv_loop_alive(loop));
  uv_loop_close(loop);
}
bool g_is_initialized = false;
}  
namespace atom {
namespace {
std::unique_ptr<const char* []> StringVectorToArgArray(
    const std::vector<std::string>& vector) {
  std::unique_ptr<const char* []> array(new const char*[vector.size()]);
  for (size_t i = 0; i < vector.size(); ++i) {
    array[i] = vector[i].c_str();
  }
  return array;
}
base::FilePath GetResourcesPath(bool is_browser) {