Improve emplaceRef for qualified construction
Fix Issue 9616 - SortedRange should support all range kinds
Improved error messages
Fix Issue 9616 - SortedRange should support all range kinds
Improved error messages
review
rebased, fixed conflict
Added the text of the failing unittest
Strip spaces for the 1000th time.
Fix Issue 5228 - Add a GetoptException and document which exceptions are thrown.
Remove trailing spaces.
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
Fixup for 9975: swap and pointsTo

Fixing 9975 revealed that checking `pointsTo` was creating problems in swap for legitimate use cases.

This is because:
1. pointsTo can sometimes create "false positives"
2. Internal pointing is not outright forbidden, it is just that the runtime is allowed to make the assumption they don't exist.

While swapping aliasing objects is a sign of stink, it should still "just work".
Remove pointsTo in move

as well as remove erroneous documentation.
Mark methods for random number generators in std.random as safe pure nothrow
Merge pull request #2048 from AndrejMitrovic/Fix5228

Issue 5228 - Add GetOptException and document exceptions
Merge pull request #1390 from monarchdodra/swapPointsTo

Fixup for 9975: swap and pointsTo
Merge pull request #2015 from monarchdodra/emplaceQual

Improve emplaceRef for qualified construction
Add asserts in Copy (and remove an enforce)

Adding extra asserts always helps. As for the enforce, I'm unsure why it was there in the first place: All the other branches simply make the assumption the target is large enough.
Small optimization to uniform01

Only need to chech u < 1 if RNG returns non-integral variates.