Fix "blocker" issues in SONAR by implementing hashCode

SONAR raised that a few classes have equals() redefined but not a consistent hashCode(). This fixes those four cases.

Also some minor changes to the readme to identify correct Maven version for builds.