More work on Scott, new RNG object, tweaks

The RNG object, part of the engine core, encapsulates the random number
generator and provides several utility functions to cover common use
cases--for example, selecting a random item in an array or applying
random variance.