Ensure adequate code coverage from std.random.RandomSample unittests.

The old unittests were missing coverage of large sections of
RandomSample.skip() because the ratios of sample size to source size
were such that Algorithm A was always being chosen over Algorithm D.

The new unittests fix this and also extend coverage to a number of
other areas previously not addressed.  There are also currently-failing
tests commented out with version(none) that can be used to verify
future bugfixes and improvements.

A few lines in skip() remain uncovered simply because they depend on
runtime conditions that are extremely rare.
Complete code coverage for Xorshift unittests.

Unittests for Xorshift were previously failing to cover the
constructor, and the .seed(), .save and .opEquals() methods.
Complete non-static code coverage for LinearCongruentialEngine unittests.

Unittests for LinearCongruentialEngine were previously missing the
constructor and the .save and .opEquals() methods.

Code coverage analysis still fails to pick up on the static methods
and the contents of a static if scope in lines 374-382 of .popFront().
Unittest for MersenneTwisterEngine .save.
Remove superflous assert(false) and return statements.
Many asserts in std.random can be made static.
Merge pull request #1357 from WebDrake/random-testcoverage

 Issue 10426 - Improve code coverage of std.random unittests