Comparison operators for hardcoded Php::Value

Comparison operators defined as 
```c
template <typename T>
bool operator==(const T &value) const { return (T)*this == value; }
//...
```
if `T == Php::Value`, then
```c
bool operator==(const Value &value) const { return *this == value; }
//...
```
This is a tautology that causes an infinite loop.

**PS** *I did not implement comparison for objects and arrays.*