Solaris changes for std.file and std.socket.

std.file: Add implementation for thisExePath(), fix struct DirEntry
std.socket: Add implementation for formatSocketError
use emplaceRef in join

And remove old trustedAllocateArray.
uninitializedArray is already trusted.
Include NullSink in std.range ddocs.

Partial fix for makefile to build std.range docs, that was broken after
std.range was split. This is only a partial fix; the full fix will have
to be done as part of [issue 13766] (https://issues.dlang.org/show_bug.cgi?id=13766).
nothrow for Schedulder

- require nothrow for thisInfo, yield

- make Condition methods nothrow
Merge pull request #2763 from quickfur/nullsink_ddoc

Include NullSink in std.range ddocs.
Merge pull request #2747 from 9il/join2

use emplaceRef in join
std.range: constraints => primitives

See discussion and voting in #2661
specialization of std.typecons.Proxy for classes

using selective import

remove nonsense code

integration of static this.

add a comment

avoiding some warnings

remove InvalidTypeException

improve readability
Merge pull request #2759 from redstar/solaris2

Solaris changes for std.file and std.socket.
tweak predSwitch ddoc
tweak clamp ddoc

- sort the Comparison section
- fix typo
Merge pull request #2765 from 9il/rename

std.range: constraints => primitives
Merge pull request #2740 from garlic-flavor/master

std.typecons.Proxy inside classes
Merge pull request #2766 from e10s/patch-2

Tweak std.algorithm ddocs
Mark methods in std.range.cycle for static array as system
Make Cycle.this system and other methods safe
Remove redundant alias
Move a modulo operation into the trusted function
Merge pull request #2647 from tom-tan/system-range-cycle-for-sarray

Mark methods in std.range.Cycle for static array as system
Mark std.range.cycle for static array and their unittests as system