Fix Issue 10717 - std.ascii.toLower and toUpper should return char instead of dchar and avoid me to use a bad cast(char)

It turns out it was incorrectly working for enum types.

New semantics are that enums are also accepted, and their OriginalType is returned.
fix issue 11089 toUpper doesn't work with 1:m mappings

Also fixes a typo in generic toCase, adds test cases for
previously fixed issue 9629
fix issue 11057 [REG2.064dev] New std.uni has icmp() partly broken
rework toUpper/toLower unittests
Merge pull request #1581 from monarchdodra/asciiToUpper

Fix Issue 10717 - std.ascii.toLower and toUpper should return char inste...
Fixup `std.file.thisExePath`.

It's dangerous to add `assert(0)` at unreachable location because is will force the compiler to not show error if the location accidentally became reachable.
Remove AA comparison from std.xml

The compiler has historically been doing a cast(void *) for AA compares,
which doesn't make much sense. Make it explicit to preserve existing
behaviour, until this module is replaced.
Merge pull request #1599 from donc/aa10381xml

Remove AA comparison from std.xml
Fix FunctionAttribute DDoc
Merge pull request #1600 from monarchdodra/FunctionAttributeDDoc

Fix FunctionAttribute DDoc
Add package QualifierOf template for internal use
fix Issue 10536 - std.typecons.wrap doesn't work with a class that defines opCast
fix Issue 10538 - std.typecons.wrap should consider opDispatch
Merge pull request #1386 from 9rnsr/fix_wrap

Issue 10536 & 10538 - std.typecons.wrap/unwrap bug fix and improvement
Merge pull request #1594 from blackwhale/fix-icmp

Fix regression in icmp
Fix Issue 10322 - ensure RandomSample is initialized before use

This patch fixes a problem where the public methods .index()
or .popFront() might be called without the first value of the
sample having been determined, which would then cause spurious
results.  The runtime initialization check currently performed
in .front has been extended to those methods.

The private boolean checks in the previous implementation have
been replaced with an enum indicating the algorithm to be used
(A, D or None) with None indicating that the sample has not
been initialized.

Step D1 of Algorithm D has been moved to the skip() function,
which results in a significant performance boost.

Unittests have been introduced to cover the cases where .index
or .popFront() are called before .front.

Finally, the .index method has been made a @property, which I
take to be an oversight of the original code.
Merge pull request #1533 from WebDrake/randomsample-init

Fix Issue 10322 - ensure RandomSample is initialized before use
Merge pull request #1596 from denis-sh/fixup-`std.file.thisExePath`

Fixup `std.file.thisExePath`.