fix Issue 12297 - std.typecons.Proxy does not properly forward IFTI calls
findRoot fix

#1894 #1893 rewopen
Update numeric.d
Update numeric.d

clear comment
Replace use of FracSec in SysTime's API with Duration.

FracSec is overly verbose and based on the recent discussions with
regards to Duration.get and Duration.split, it should be given the boot.
The only non-deprecated place which uses it in Phobos is SysTime, so
this deprecates the functions that use it, and replaces it with ones
that expect a Duration of less than one second.

This means replacing a SysTime constructor and SysTime's fracSec
property. fracSecs is introduced to replace fracSec. It uses a Duration
or takes a template argument for the units and then uses an int
(essentially then creating an overload which is a shortcut for calling
Duration.total or creating a Duration, depending on whether its the
getter or the setter).
Replace fracSecToISOString and fracSecFromISOString.
Replace uses of FracSec.from!"msecs" with core.time.msecs.
Replace uses of FracSec.from!"msecs" with core.time.msecs.
Replace uses of FracSec.from!"usecs" with core.time.usecs.
Replace uses of FracSec.from!"hnsecs" with core.time.hnsecs.
Replace uses of FracSec.from!"hnsecs" with core.time.hnsecs.
Replace uses of FracSec.from!"hnsecs" with core.time.hnsecs.
Remove last undeprecated uses of SysTime.fracSec.
Clean up uses of zero-length Durations.
Cleanup of a version-else block in std.datetime so that it has an else.
Add `pure`/`nothrow`/`@nogc` attributes to `std.socket`.

Also add `in` parameter storage class to `validHostent` function.
Also add attributes to `std.c.windows.winsock`.
Make `getnameinfo`, `getaddrinfo`, and `freeaddrinfo` pointers `immutable`.
rebase
Ddoc for map() should be associated with the function itself.
Do the same for amap and reduce, for consistency's sake.