Merge pull request #2042 from Safety0ff/fix12446

Fix issue 12446 - std.parallelism.amap: prefer iteration to indexing
Fix Issue 12449

Undefined format in std.algorithm.max
fix issue 12419

Test that UTF-8 decoding yields a value in the valid range.
UTF-8 may encode values beyond these covered by [0, 0x10FFFF].
Update algorithm.d
Update algorithm.d
Revert
Strip spaces for the 1000th time.
Fix Issue 5228 - Add a GetoptException and document which exceptions are thrown.
Remove trailing spaces.
Merge pull request #2038 from blackwhale/issue-12419

Fix issue 12419: assertion failure in std.utf
Revamp to allow tee to take either an OutputRange or a lambda to output to
Small formatting fix
Fix small typo that was causing a compile error, redo comments
Partially done new unit tests for outputting to OutputRanges
Fix unittest taking a function as an OutputRange
Merge pull request #2047 from monarchdodra/12449

Fix Issue 12449 - Undefined format in std.algorithm.max
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