alternate implementation of Range1 storing start,stop instead of start,len

this Range1 could be the UnitRange of #5585, with Range1 deprecated

also intended to address #5469 (performance)
save checkin. at attempt to start on ordinal ranges (#5585)
nearly finish OrdinalRange

still not clear what to do with floating point in StepRange
fix typo in update to linalg code for new ranges
allow constructing StepRange by length

It turns out there are many cases that are drastically easier this way.
Tests not passing yet, but getting there.
introduce range() function for making ranges by length

rename Range1 to UnitRange

allow constructing a larger class of ranges, leaving overflow to length()
remove * and div for Char

export UnitRange

NEWS for range changes

remove random test for BigInt ranges, since they now have BigInt
lengths, for which we can't yet generate random numbers.
add back a couple to_index methods
rename Range1 to UnitRange everywhere
eliminate 2nd type parameter from UnitRange

this is likely to cause too much breakage; e.g. arrays of UnitRange{Int}
are common.
remove third type parameter from StepRange

it expressed a degree of freedom that was not really there, since it
really depended on the first two parameters.
Merge pull request #6326 from JuliaLang/jb/newrange1

ordinal range implementation, fixes #5585