Fix Issue #5240: faster std.random.uniform for [0.0, 1.0) range

Following typical design in other languages, the function is named
uniform01.  It can be templated on floating-point type, defaulting
to double if none is specified.

The implementation is pretty much derived from its counterpart in
Boost.Random, in particular in its taking account of the different
requirements for integral versus floating-point RNG values, and in
checking that the generated variate is less than 1 before returning.
This last check is necessary simply because we can't guarantee, in
the case of a floating-point based RNG, that we will not get a
result exactly equal to 1.

Fixes http://d.puremagic.com/issues/show_bug.cgi?id=5240
Small optimization to uniform01

Only need to chech u < 1 if RNG returns non-integral variates.
Supply the lacked local import
Merge pull request #2064 from 9rnsr/fix_imports

Supply the lacked local import
fix property enforcement
Merge pull request #2065 from 9rnsr/enforceProp

fix property enforcement
Merge pull request #2050 from WebDrake/uniform01

Fix Issue #5240: faster std.random.uniform for [0.0, 1.0) range
fix Issue 12505 - Null pointers are pretty-printed even when hex output is requested
Merge pull request #2068 from 9rnsr/fix12505

Issue 12505 - Null pointers are pretty-printed even when hex output is requested
fix Issue 11778 - format for null does not verify fmt flags.
Merge pull request #2069 from 9rnsr/fix11778

Issue 11778 - format for null does not verify fmt flags.
a start on std.regex conversion

few steps more
hacks on the way to integrate new uni into std.regex
workaround internal error
adjust Tries back to 2-level
another minor tweak, always use tries not sets for now
hack our way to make ctRegex work, some tests disabled
Kickstart not quite ready, casefolding too. Otherwise looks fine
introduce simpleCaseFolding to support case-insensitive regex
fix range violation for non-existant sets of length < 2