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
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`
Remove comma expression in std.uni
fix Issue 13441 - joiner asserts with only(x) separator
fix Issue 13445 - std.process fails to create process with empty (non-null) working directory
std.process: Update unittest_burnin to test new functions
std.process: Test random characters at filename start as well
fix Issue 13447 - Do not escape process parameters unless necessary
std.process: Fix using 0 as invalid FD value, use -1 instead
Merge pull request #2502 from CyberShadow/pull-20140909-140509

fix Issue 13445 - std.process fails to create process with empty (non-null) working directory
Merge pull request #2504 from CyberShadow/pull-20140909-143654

fix Issue 13447 - Do not escape process parameters unless necessary
Merge pull request #1010 from monarchdodra/rangeTraits

Consolidating Range traits
Fix issue #13352 - Only perform Algebraic arithmetic with allowed types.

Adds a static check allowed!T before trying any particular numeric type. Also checks for an exact type match in case of a raw (non-Variant) operand and prefers that to one of the fixed numeric types. Finally, it loosens the restriction for opArithmetic to only work for equal Variant types.

Conflicts:
	std/variant.d