Minor DST bug and possible sleep bug fixed

Automatic DST state changes now get saved to EEPROM, so they are
correctly restored after the clock resets.  (The clock should only
reset when the power goes out and the backup battery is dead.)  Since
people expect that time might be wrong when the clock resets, this
bug was never really problematic.

Also, I noticed that interrupts are enabled during the piezo_sleep()
function.  None of the sleep functions should enable interrupts, as
doing so might make race conditions possible.  I'm not sure if
enabling interrupts at this point could have actually caused any
problems, but the code has been changed to function as intended.