Improved README
Test cleanup: reflexivity, symmetry and transitivity
Intentions made clearer
Test cleanup: use then-when-given in unit test names
Small code improvement
Test cleanup: significant fields
Test cleanup: non-nullity
Test cleanup: differentiate tests
Test cleanup: hashCode
Test cleanup: equals signature
Test cleanup: transient and synthetic fields
Test cleanup: better package names