Fixed Php::Value copy constructor

The old copy constructor of Php::Value does't work correctly when I put
a Php::Value with php reference into a std::vector, or use a reference
as a unordered_map key. for example:

```c++
Php::Value test_value_ctor(Php::Parameters &params) {
    int32_t count = params[0].size();
    std::vector<Php::Value> v;
    for (int32_t i = 0; i < count; ++i) {
        v.push_back(params[0][i]);
    }
    return v;
}
```

the test php file:
```php
<?php
$a = array();
$a[] = &$a;
$a[] = "hello";
var_dump($a);
var_dump(test_value_ctor($a));
?>
```

Expected output is:
```
array(2) {
  [0]=>
  &array(2) {
    [0]=>
    *RECURSION*
    [1]=>
    string(5) "hello"
  }
  [1]=>
  string(5) "hello"
}
array(2) {
  [0]=>
  &array(2) {
    [0]=>
    *RECURSION*
    [1]=>
    string(5) "hello"
  }
  [1]=>
  string(5) "hello"
}
```

The actual output is:
```
array(2) {
  [0]=>
  &array(2) {
    [0]=>
    *RECURSION*
    [1]=>
    string(5) "hello"
  }
  [1]=>
  string(5) "hello"
}
array(2) {
  [0]=>
  array(2) {
    [0]=>
    &array(2) {
      [0]=>
      *RECURSION*
      [1]=>
      string(5) "hello"
    }
    [1]=>
    string(5) "hello"
  }
  [1]=>
  string(5) "hello"
}
```

This patch fixed it.