Reworked all equals methods

Main change are the "shorten out if it's the same object" checks.

I avoided the variable name `$that` because it's to close to `$this` and I remember we already shot us in the foot because of that, see #169. ;-)

I'm not 100% sure if the coding style I'm using now is the absolute best. But at least it's the same in all classes now. Please note that I merged the `instanceof` check in the final `return` if possible. I find a straight `&&` combined list of checks easier to read compared to a separate `return false`.