Reworked all equals methods

In classes that don't have subclasses the `get_class` approach is not necessary. But it's crucial if an `equals` implementation should be reused in subclasses. Which is the case in the abstract `DataValueObject`.