Implements seed hashing and PRNG warmup

Uses Knuth's multiplicative hash to obfuscate the input seed
Warms up mt19937 with `const int warmupIter = 10000;` 10-bit resolution doubles

Completes #38