Use an xorshift64* PRNG instead of a Mersenne Twister.

xorshift64* has a much smaller memory footprint while being faster
than a MT and still having statistically high quality output.

Use the C++11 standard random facilities rather than boost::random.

Seed the generator with the full state size rather than just 32 bits
of entropy.