Fix Issue 12921 - Module std.getopt does not respect property syntax
Merge pull request #2251 from 9rnsr/fix12909

Make side effect on strongly pure function call
Merge pull request #2250 from SFrijters/master

Fix Issue 12921 - Module std.getopt does not respect property syntax
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 not SysTim, so
this deprecateds 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!"usecs" with core.time.usecs.
Replace uses of FracSec.from!"hnsecs" with core.time.hnsecs.
Remove last undeprecated uses of SysTime.fracSec.