Throws if range is too large for 'random.uniform'

This fixes issue #2138 by checking that the range (i.e. high - low) is finite before invoking `rk_uniform`.

A test case was added to ensure valid ranges do not throw, but invalid ranges do.
Addressed review feedback.