Implement json equality operators
Improved string representation of array values in jmx connector

Arrays were being rendered using the default toString representation.
So, an Array would be rendered as something like [Ljava.lang.String;@4da91ced.
Arrays are now rendered as a string representation of the contents of the array.
The string representation consists of a list of the array's elements,
enclosed in square brackets ("[]").  Adjacent elements are separated by ", ".

Fixes #1632
Improve error message when using DISTINCT with non-comparable types