Add std.range.enumerate

Fixes issue 5550
std.process: Update unittest_burnin to test new functions
std.process: Test random characters at filename start as well
fix Issue 13446 - Can't use executeShell/escapeShellFileName to redirect to file whose name starts with &

Discovered and verified by -version=unittest_burnin
fix Issue 13450 - Add WindowsException and wenforce to std.exception

Also expose ErrnoException's errno field as a documented property
for consistency.
Make std.file.isFile, isSymlink and their unittests safe
Range adaptor: cache

As discussed in this thread:
http://forum.dlang.org/thread/ovbjcmogezbvsxrwfcol@forum.dlang.org

This provides a range adaptor that cache the result of another range.

Meant as a lazy alternative to array. Not much else to say...?

Documentation might suck.
Fix trustedSymlink to use toStringz
std.internal.scopebuffer: added inout for slices

update unittest

removed no-op cast

remove blank lines
Fix issue 13483 std.range.tee should accept function symbols
Make std.file.setAttributes safe
Merge pull request #2518 from 9il/scopebuffer

Scopebuffer
Merge pull request #2528 from tom-tan/safe-file-setAttributes

Make std.file.setAttributes safe
Add @nogc unittest for std.range.retro.

To prevent regression of issue 12662.
Update zip documentation

The example of sorting a zipped range was very confusing as it used a string literal sorting predicate, requiring use of "a" and "b" which were already being used as the names of the two ranges being zipped.  Updated the sorting predicate to use a lambda with parameters "c" and "d".
Merge pull request #2529 from quickfur/issue12662

Add @nogc unittest for std.range.retro.
Merge pull request #2530 from jwhear/patch-2

Update zip documentation
Document signature of function to be passed to recurrence().
Use ddoc'd unittest instead of inline code of questionable workability.
fix Issue 13477 - std.process should ignore unnamed service variables on Windows