[bugfix] Ensure NormalDistribution's .save method works correctly

The .save method was failing in the case that a distribution was on the
second of its pair of random variates.  The existing unittest failed to
detect this as it called .save when the distribution was on the first of
the variate pair.
Function implementation of normally-distributed random numbers

The new normal() function uses Box-Muller, but simply discards the
second of the possible variates.
Documentation tweaks regarding use of rndGen by default
Finalize web-ready documentation, complete with HTML template
Correct unittest for enum-based UniformDistribution
Ensure NormalEngineBoxMuller is tested with all RNG types
[bugfix] Avoid calls and references to std.random.uniform
Correct out-contract boundary conditions for uniform()
[bugfix] Ensure uniform() handles dchar types correctly

The bug fixed here arises from the fact that unlike char and wchar,
dchar does not make full use of its 32 bits of storage.  Hence, the
optimization of uniform!"[]"(T.min, T.max) to use instead uniform!T
will fail in the case of T == dchar, generating invalid unicode
points that fall outside the range [dchar.min, dchar.max].

This patch tweaks things so that uniform!"[]"(T.min, T.max) will
only use the optimization of T is not a dchar, and conversely that
uniform!dchar will call uniform!"[]"(dchar.min, dchar.max).
Correct .save for UniformDistribution and Uniform01Distribution
Unittest for DiscreteDistribution.save
Ensure unittests make use of all uniform RNG types
Mark 1.0.0 release candidate 1