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.
Merge pull request #2254 from jmdavis/fracSecs

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