Test if getHash is static

This should fix #130.

It turns out PHP's `serialize()` function just calls the `...->serialize()` methods provided by the `Serializable` interface in `Snak`. See the implementations in `SnakObject::serialize` and `PropertyValueSnak::serialize`. Only properties that are used in these methods become part of the serialization.

This patch:
* Adds tests to make sure the `getHash` implementation is static and doesn't change, e.g. when new fields are introduced.
* Adds basic tests for `No`- and `SomeValueSnak`.
* Removes strange self-comparisons from tests.
* Simplifies some loops.
* Renames some strange variables.
How? I'm a programmer. It's my job to make things do what they are supposed to do. But this doesn't answer my question what this _is_ supposed to do. You told me the hashes already changed between 0.x and 1.0. I think this is a problem and should not be done. I'm asking if I should fix this.