Use List/Arrays hashCode algorithm

This is one more step towards the notion of an AutoMatter value type
working somewhat like a named tuple. This is also what guava/java 8+
Objects.hashCode uses.

Hopefully this makes it more likely that different implementations of
the type value interface can co-exist. Unfortunately AutoValue uses a
different algorithm and reserves the right to change it at any time.