Consolidating range traits
Added JSONValue dictionary add and vector append
Spelling
fix issue 9959 - Add functional pattern matching for object references

Add the function std.algorithm.castSwitch, which chooses a delegate
based on the class of an object and run that delegate with that object.
use CRuntime_DigitalMars/CRuntime_Microsoft instead of Win32/Win64 where appropriate
Verify that json array append does not alias the original array
Supplemental fix for issue 9148 - lambdas will be aggressively inferred to pure
Supplemental fix for issue 13120 - remove accidentally accepted @nogc attribute

`removechars()` and `squeeze()` are not @nogc, because they uses `dup` and `std.utf.encode`.
Make std.file.getAttributes safe
Fix Issue 11706 - Add a TypedefType trait to extract the underlying type
of a std.typecons.Typedef.
Fix issue 13425 - DList.linearRemove on last...

...element returns non-empty range.

The main issue is that DList.Range is implemented in terms of "first and last" as opposed to "first and past last", which means you have to special-case empty ranges. The fix is to do the same thing as in `opSlice`, and to explicitly initialize a null Range when it is empty.
Merge pull request #2493 from 9rnsr/fix13120

Supplemental fix for issue 9148 and 13120
Tweak static if in Array

Probably changes nothing in the generated code, but can have an impact of attribute inference. I'm trying to get this to be `@nogc`
Merge pull request #2497 from monarchdodra/DListRemove

Fix issue 13425 - DList.linearRemove on last...
Remove comma expression in std.uni
Merge pull request #2116 from AndrejMitrovic/Fix11706

Issue 11706 - Add a TypedefType trait to extract the underlying type of a std.typecons.Typedef
Fix Issue 4493 - Add sorting capability to toJSON and add another unittest.
Merge pull request #2120 from AndrejMitrovic/Fix4493

Issue 4493 - Add sorting capability to toJSON and add another unittest
std.process: @safe/nothrow cleanup
fix Issue 13441 - joiner asserts with only(x) separator