Override hashCode when equals overridden

Java 8 added a warning for this:

https://bugs.openjdk.java.net/browse/JDK-6563143
Add missing @Override annotations