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:

```
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
$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.