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
Add std.range.enumerate

Fixes issue 5550
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.
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
Merge pull request #2501 from CyberShadow/pull-20140909-112214

std.process: @safe/nothrow cleanup
fix Issue 13445 - std.process fails to create process with empty (non-null) working directory