Make default record comparison operators require the same type for both values

[reviewed by Tom and others]

[IOU: Spec update]

This patch makes the default record comparison operators non-generic
in the second argument, forcing both sides to have the same type.

The implementation with the generic second argument led to an
unfortunate and difficult to find bug when comparing empty records
(including empty extern records) to variables of *any* type, where ==
would always return true and != would always return false (see
r21812).

The spec currently states that the default comparison operators do a
field-by-field comparison of the values, but it seems that this
features is not used much (only 2 tests).  So in an effort to make
things more stable, we've decided to go forward with this change,
though it's possible we may want to restore this ability and will look
at a better implementation at that point.  Note that you can always
get around this by overriding the comparison operators.




git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@21852 3a8e244f-b0f2-452b-bcba-4c88e055c3ca