always manually inherit $_SERVER

The $_ENV superglobal is not populated if E is not present in the variables_order directive. Since populating this variable is not recommended (for performance reasons), we should not rely on it.

This change updates the builder so $env=null is never passed to proc_open(). Instead we always merge the $_SERVER superglobal into any environment variables that were manually set on the builder (unless inherit has been disabled).
merged branch naitsirch/process-inherit-env-fix (PR #8718)

This PR was submitted for the 2.3 branch but it was merged into the master branch instead (closes #8718).

Discussion
----------

[Process] always manually inherit $_SERVER by kriswallsmith #8067

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | ~
| License       | MIT
| Doc PR        | ~

The `$_ENV` superglobal is not populated if `E` is not present in the `variables_order` directive. Since populating this variable is not recommended (for performance reasons), we should not rely on it.

This change updates the builder so `$env=null` is never passed to `proc_open()`. Instead we always merge the `$_SERVER` superglobal into any environment variables that were manually set on the builder (unless inherit has been disabled).

This is a copy of PR https://github.com/symfony/symfony/pull/8067 by @kriswallsmith. I have created a new PR because there were some failing tests and kriswallsmith seems to have no time to rebase.

Commits
-------

75be4d9 [Process] always manually inherit $_SERVER