make ranges and arrays unequal, faster hashing of ranges, fixes #5778

fix == and isequal of ranges to only compare by components when it is safe to do so
  (ranges with different types but == components can generate different elements)

add float32(x) etc. for FloatRange

don't show floating point Range objects using colons, since those construct FloatRanges