Lazily instantiate automatic RNG streams

From !2497 :

@tomhenderson wrote:

there are 1702 automatic stream assignments (i.e., 1702 random variables created) and there are 1058 fixed stream assignments that are made later... I then further instrumented random variable stream code to abort if GetValue() is called on a random variable whose stream is -1. The abort is not triggered, so I think there are no random variable streams being used with an automatic stream.

I think this means the automatic streams are being assigned/consumed to no purpose, since the RNG's which are eventually used get reassigned before use.

Need to find another way to instantiate automatic streams lazily.