Removes rand.Seed calls throughout the code, in favour of
only setting it once, during package init.

Adds the SetSeed function, which allows us to set the
randomizer seed to a known value. This is necessary to
create reliable and predictable unit tests.