Some equals(), hashCode() and equality methods for the location classes

The `hashCode()` methods are raw auto-generated code, the `equals(Object)` methods are simplified auto-generated code and the generic equality methods are ... useful.