Partial fix for Issues 7067 and 10434 - std.random.RandomCover

The existing RandomCover design is fatally flawed because it
requires a RNG as input, which it then copies internally by
value.  So, unless the user is smart enough to pass something
like e.g. SomeRNG(unpredictableSeed), there will be unintended
correlations in random behaviour.

This partial fix follows the design of RandomSample in allowing
RandomCover to use the thread-global default RNG rndGen.  It
also improves the choice of template parameter and variable
names in line with Issue 10434.
Partial fix for Issue 10434 - std.random.RandomSample

In line with changes to RandomCover, this patch tweaks
the choice of template parameter and variable names in
order to bring clarity and uniformity to the module.
Correct the .save methods for RandomCover and RandomSample.

RandomCover and RandomSample should only be save'able if:

   * the input is a forward range

   * the thread-global RNG rndGen is not being used

   * the RNG being used is a forward range.
Unittests for RandomCover and RandomSample should test with all RNG types.
Documentation updates for RandomCover and RandomSample.

Mostly regarding the statistical safety-related concerns
when passing a specified RNG, plus a few corrections.
Small stylistic tweaks for Andrei :-)
Ensure bool[] _chosen is filled with false at start of cover.
Make sure RNGs are passed to Random{Cover, Sample} by ref/auto ref.
Restore Random{Cover, Sample} constructors accepting value-type RNG.
Slightly tone down warning message about value-type RNGs and Random{Cover, Sample}.
Fixes Issue 10868 - std.string.translate should have an overload that takes an output buffer.
fix locking text writer postblit/dtor

Both should handle T.init correctly
Fix issue 10898
fix property enforcement
Merge pull request #1530 from 9rnsr/enforceProp

fix property enforcement
Merge pull request #1523 from blackwhale/locking-text-fix

Bugfix: locking text writer dies on .init
Merge pull request #1501 from AndrejMitrovic/Fix10868

Issue 10868 - std.string.translate should have an overload that takes an output buffer.
Merge pull request #1499 from WebDrake/randomcover-randomsample

Improved design for RandomCover and RandomSample