Move assignment of newtime.tm_isdst up to make its need more clear.
Instead of mass assigning the fields from newtime to time, split them out
in DST, minute, hour, and date assignments. This allows corrections to
the minute, hour, and date fields to be made faster in case they wandered
off or got false values due to double bit errors.
Move some comments around.