Make ArrayType comparable

Following
https://github.com/facebook/presto/issues/1816

A = B if they have the same cardinality and every element in A is equal to the corresponding element in B
A < B if
for some 1 <= k <= min(cardinality(A), cardinality(B)), A[i] = B[i] for every i < k and A[k] < B[k]
or, for every 1 <= i <= cardinality(A), A[i] = B[i] and cardinality(A) < cardinality(B)
I don't think this works. For example, try an `array<timestamp with time zone>` and test that these two are equal and have the same hash:
`timestamp '2012-10-31 08:00 UTC'`
`timestamp '2012-10-31 01:00 America/Los_Angeles'`