Documentation updates

The main README now better describes the firmware and hardware
branches of this project and is better tailored to the majority of
xmas users who run the xmas firmware on the Adafruit clock (v1.1).
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.
Documentation updates

The troubleshooting section now includes more possible causes and
solutions to programming failures, and the description of the flaky
segment problem is more detailed, mentioning some of the rarer
symptoms people have reported on the Adafruit forums.
Documentation updates

The troubleshooting sections addressing the dim digit problem and
oscillator issues have been rewritten.
Documentation updates (thanks Phil!)

The oscillator troubleshooting section in the firmware/README file has
been revised to include the modifications suggested by Phil DeGruy.

The main README file has also been revised for clarity.
Temperature sensor errors are now displayed

If the TEMPERATURE_SENSOR macro is enabled in config.h, the clock will
use an attached DS18B20 temperature sensor to perform software
temperature compensation.

But if communication with the sensor failed, the clock would appear to
function normally--except that no temperature compensation would be
performed.  Now, the clock will periodically display a "temp err"
message to show the communication failure.

The absence of the "temp err" message will now provide assurance that
the clock is communicating with the DS18B20 and that temperature
compensation is being performed.
Minor time format bugfix

When setting the time format under the "cfg regn"/"time fmt" menu, all
settings should revert back to their previous values if the user
presses the "menu" button to exit the menu.  But the colon style would
remain changed if the user exited the "dst show/hide" menu or
"gps show/hide" menu.  This has been fixed.
Minor code clarity edits

Updated comments in icetube.c  Also, clock speed is now set to 2 MHz
on startup to save a bit of power during an initial sleep.
Documented diagnostic messages (thanks Doug!)

At the suggestion of Douglas Johnson, the troubleshooting section in
the firmware/README now contains a description of the various
diagnostic messages that might flash on the display.

The "ext rset" message has also been changed to "pin rset" due to the
difficulty of displaying an "x" on a 7-segment display.
Minor centisecond time format bugfix

The centisecond time format never showed the secondary indicator
(the decimal on the last digit).  The secondary indicator can be
configured to show DST or GPS lock.  This has been fixed.
Improved software temperature compensation during sleep

This commit only affects clocks with software temperature compensation
enabled, which requires the addition of a DS18B20 temperature sensor.

The temperature sensor requires three volts, but system voltage can
fall below that during sleep.  Thus, software temperature compensation
cannot be accurately performed during sleep.

After waking from sleep, the clock will measure temperature and
perform a time correction under the assumption that the the clock was
at the measured temperature for the entire sleep period.  This
behavior is not adequate for accurate temperature compensation during
sleep, but should be better than doing no compensation at all.

Before this commit, the clock would only perform the better-than-
nothing correction above for a sleep duration of up to a few days.
The code now correctly handles much longer sleep durations.
Additional drift correction during sleep (thanks Russell!)

On the Adafruit forums, Russell Walker (Russell27) noticed that the
Ice Tube Clock oscillator runs a bit slower during sleep due to lower
system voltage while on battery power.  An additional sleep drift
correction value may now be defined in config.h to compensate.

See Russell's post for more information:

  http://forums.adafruit.com/viewtopic.php?f=41&p=272605#p272605
Changed initial defaults in config.h

The defaults in config.h have been changed to increase the display
brightness range, allowing the user to increase the brightness of an
aging display through the menus without the need to reconfigure and
reprogram the firmware.  (firmware/config.h)

For the xmas hardware revision, the initial/preloaded drift correction
constant is now set by default to a value calibrated with the
recommended parts on a OSH Park board.  (hardware/config.h)
Display transition bugfixes (minor/cosmetic)

Display transitions look better when transitioning to time displays.
Merge branch 'master' into russell