fix generators/rand-range to handle/emit the full range of longs, fixes gh-37

Basic form pulled from data.generators/uniform, though that impl has
the same fundamental problem. Fixed by scaling the components of the
diff before actually determining the diff. This only works because
the random factor is a double, so the diff can exceed the range of longs
safely, but is brought back inside that range by the addition of
`lower` before being floored.