Simplify equality testing of wrapped PHP objects and add tests.

Edd and I initially thought the original code was broken, but it's simply down
to PHP's different notion of when two objects compare equal. While trying to
understand this, I simplified (and probably slightly sped up) the equality code
and added more tests.
Tidy code up.

Also avoid calculating the same thing more than once. No functional change.
Unwrap wrapped objects when they go back to the correct VM.

This was already implemented for py_to_php (but only tested indirectly).
Implement it also for php_to_py and explicitly test both directions.
Add missing PHP null test.
Experimentally rename W_PyBridgeProxy to W_PyProxyGeneric.

It's odd to have Bridge in that classname and no other (and not particularly
helpful). Ideally everything in php_wrappers would be of the form W_PyProxy<x>,
but I won't do anything else until Edd's merged other branches in.

While here, rename the magic__ methods to something more helpful.
Experimentally rename W_PhBridgeProxy to W_PHPProxyGeneric.

It's odd to have Bridge in that classname and no other (and not particularly
helpful). Ideally everything in py_wrappers would be of the form W_PHPProxy<x>.