Improved RangedNumberGenerator robustness for heterogeneous requests

In scenarios with multiple heterogeneous RangedNumberRequests,

 1. a request can be of type System.Byte
 2. the next request can be of a type with maximum value greater than System.Byte.MaxValue
 3. and then, the next request can be (again) of type System.Byte – *then* the RangedNumberGenerator state *could* be greater than System.Byte.MaxValue and a System.OverflowException was thrown, as reported in #295.
It's just that... if one has to introduce checks for particular values (in this case, a `Type` is a value), doesn't that suggest that the overall algorithm is broken?