Mark methods for random number generators in std.random as safe pure nothrow
Mark LinearCongruentialEngine.front and XorshiftEngine.front as const
Merge pull request #2051 from tom-tan/safe-pure-nothrow-std-random-generators

Mark methods for random number generators in std.random as safe pure not...
Fix Issue 12434 - std.algorithm.sum of immutable array too

https://d.puremagic.com/issues/show_bug.cgi?id=12434

Simply uses the inference's `Unqual` type as a seed, rather than the straight up result.

Also add some unittesting while at it.