ScalaEquals. Never look up an equals/hashCode recipe again!