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
Added explanation of requirements in comments.
Fixes issue 9299 - std.algorithm.minPos of const(int)[]
Made cycle's DollarToken private.

There's no reason for anyone to use it directly, so it's better for it
to be private.
Merge pull request #1071 from jmdavis/cycle

Made cycle's DollarToken private.
Merge pull request #1070 from monarchdodra/9299

Fixes issue 9299 - std.algorithm.minPos of const(int)[]
Merge pull request #1048 from Poita/bug8368

Issue 8368 - Insufficient constraints for sort
Merge pull request #1026 from Dicebot/patch-1

Update std/traits.d