[BrowserKit] Fixed server HTTP_HOST port uri conversion

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

This will fix URI conversion using the HTTP_HOST server header.

Steps to reproduce:
```
$client = new TestClient();
$server = array('HTTP_HOST' => 'example.com:8000');
$client->request('GET', 'http://example.com:8000', [], [], $server);
        
echo $client->getRequest()->getUri(); 
// outputs:  http://example.com:8000:8000
// expected: http://example.com:8000
```

We discovered this issue during [mink](https://github.com/Behat/Mink) testing using [goutte](https://github.com/fabpot/goutte) on a non standard port.




I'm not sure if I can follow you.
You propose to change the code to:

```
if ($port = parse_url($uri, PHP_URL_PORT)) {
    $port = ':'.$port;
}

$uri = preg_replace('{^(https?\://)'.preg_quote(parse_url($uri, PHP_URL_HOST).$port).'}', '${1}'.$server['HTTP_HOST'], $uri);
```

May you please provide me with a failing testcase like the following so I can verify the problem?

```
$client = new TestClient();

$server = array('HTTP_HOST' => 'www.example.com:8000');
$parameters = array();
$files = array();

$client->request('GET', 'http://example.com', $parameters, $files, $server);
$this->assertEquals('http://www.example.com:8000', $client->getRequest()->getUri(), '->request() uses HTTP_HOST to add port');
```