Added GPS and LCD code

Added GPS code using the Time and TinyGPS modules (see code for URLs).
The TinyGPS module is more robust than Adafruit's GPS code (though I
borrowed some code from them) and the Time library is easier to use in
an environment where Arduino has lots of other things to do. Basically
we now ask for the system time and the Time library takes care of
updating it via the TinyGPS module if necessary.

The LCD was also added. I modified the demo program to announce the
various demos on the LCD screen.

I also modified some keywords for enum constants to use CamelCase
consistently
Improved GPS code

Modified the GPS code to read and process incoming data as much as
possible, until an interval occurs. This fixes reliability issues where
the serial port would aparently get a lot of framing errors and dropped
bytes (and therefore, no date, which made the Time library not sync, or
de-sync).

Also added a GPS state to allow the sketch to see if the GPS is
receiving, if it got any valid data, if it got the date and if it got
the time. The higher the state, the more information has been received.