Allow TimeoutSec=0 to work as documented in mount units and elsewhere (#6013)
Since commit 36c16a7c ("core: rework unit timeout handling, and add new setting RuntimeMaxSec=") TimeoutSec=0 in mount units has cause the mount to timeout immediately instead of never as documented. There is a similar problem with Socket.TimeoutSec and Swap.TimeoutSec. These are easily fixed using config_parse_sec_fix_0(). Automount.TimeoutIdleSec looks like it could have the same problem, but doesn't because the kernel treats '0' as 'no timeout'. It handle USEC_INFINITY correctly only because that constant has the value '-1', and when round up, it becomes zero. To avoid possible confusion, use config_parse_sec_fix_0() as well, and explicitly handle USEC_INFINITY.
Loading