imporvements to uninitializedFill && initializeAll

Because they didn't really handle all of the cases correctly.

Added unittests.
Issue 8367 - Insufficient constraints for chain

The error message from compiling the bug's sample code after this change is:

```
bug.d(11): Error: template std.range.chain does not match any function template declaration. Candidates are:
std/range.d(2018):        std.range.chain(Ranges...)(Ranges rs) if (Ranges.length > 0 && allSatisfy!(isInputRange, staticMap!(Unqual, Ranges)) && !is(CommonType!(staticMap!(ElementType, staticMap!(Unqual, Ranges))) == void))
bug.d(11): Error: template std.range.chain(Ranges...)(Ranges rs) if (Ranges.length > 0 && allSatisfy!(isInputRange, staticMap!(Unqual, Ranges)) && !is(CommonType!(staticMap!(ElementType, staticMap!(Unqual, Ranges))) == void)) cannot deduce template function from argument types !()(MapResult!(__lambda2, Foo[]),string)
```

Fixes Issue 8367
http://d.puremagic.com/issues/show_bug.cgi?id=8367
Fix 8368 - Insufficient constraints for sort

Error from bug code after this change:

```
Error: template std.algorithm.sort does not match any function template declaration. Candidates are:
std/algorithm.d(7820):        std.algorithm.sort(alias less = "a < b", SwapStrategy ss = SwapStrategy.unstable, Range)(Range r) if ((ss == SwapStrategy.unstable && (hasSwappableElements!(Range) || hasAssignableElements!(Range)) || ss != SwapStrategy.unstable && hasAssignableElements!(Range)) && isRandomAccessRange!(Range) && hasSlicing!(Range) && hasLength!(Range))
bug.d(6): Error: template std.algorithm.sort(alias less = "a < b", SwapStrategy ss = SwapStrategy.unstable, Range)(Range r) if ((ss == SwapStrategy.unstable && (hasSwappableElements!(Range) || hasAssignableElements!(Range)) || ss != SwapStrategy.unstable && hasAssignableElements!(Range)) && isRandomAccessRange!(Range) && hasSlicing!(Range) && hasLength!(Range)) cannot deduce template function from argument types !()(MapResult!(__lambda2, string[]))
```

Fixes Issue 8368
http://d.puremagic.com/issues/show_bug.cgi?id=8368
Update for documentation as a consequence for https://github.com/D-Programming-Language/phobos/pull/862
Fixes Issue 5736 - Missing 'else' in 'static if'
Merge pull request #1061 from AndrejMitrovic/Fix5736

Issue 5736 - Missing 'else' in 'static if' in BaseClassesTuple
Merge pull request #1047 from Poita/bug8367

Issue 8367 - Insufficient constraints for chain
Remvoe tab introduced in pull #1043

Just remove the tab.
Merge pull request #1063 from denis-sh/patch-2

Remvoe tab introduced in pull #1043
Fixes Issue 8078 - receiveOnly exceptions should be informative.
fix Issue 9288 - Parameter(Identifier|DefaultValue)Tuple report pointless errors
Fix zip for slicing infinite ranges

Because the type returned is not the same.
use enum opDollar in Sequence

Because an enum is better than a function
Remove back/popBack primitives from Repeat

Because a bidirectional infinite range makes no sense. AFAIK.
Merge pull request #1062 from AndrejMitrovic/Fix8078

Issue 8078 - receiveOnly exceptions should be informative
Merge pull request #1064 from 9rnsr/fix9288

Issue 9288 - Parameter(Identifier|DefaultValue)Tuple report pointless errors
Added explanation of requirements in comments.
Provide slicing for Repeat
cleanup OS detection

- the wrong variable was set for OpenBSD and Solaris
Activate bugfix 6336 unittest