linux: Fix timer_configure semantic

timerfd_settime has a different semantic for the case that delay is 0
and interval is greater than 0. timer_configure should start a repeated
timer without initial delay, but timerfd_settime stops the timer because
delay is 0 and interval is ignored in this case.
Simplfy file replace logic in conf_file_write

Just write to a .tmp file and replace the existing one with it, instead
of writing to a .new file, renaming the existing file to .old and
renaming the .new file to the existing one.

Also use MoveFileEx on Windows because rename cannot replace existing
files on Windows.