Multiple random number generator streams

This PR makes a fairly simple change to the random number generator to allow for multiple "streams" of random numbers. The idea is that each stream has a different starting seed (which are just consecutive integers) and by the properties of linear congruential generators, the resulting sequences of random numbers shouldn't overlap. By itself, this PR doesn't really achieve anything -- it simply enables enhancements which will require multiple random number streams, e.g. during tallying.