Offer more useful diagnostics on data type errors in results_eq().

It was confusing people when output looked like this:

    Columns differ between queries:
       have: (1,2,3)
       want: (1,2,3)

This would happen when the data types were different but the values the same
(e.g., the first row might have integers while the second would have bigints).

Make two changes to try to adddress this information:

1. Change the diagnostic message to the more informative "Number of columns or
   their types differ between the queries".
2. Don't show the "have" and the "want" if they're identical.

Hopefully this will be less confusing to folks. Closes #15.