I wonder if at initialization, you could run a piece of code, similar to "i2cdetect" shown on this AdaFruit tutorial (link belw), on how to add a RTC to the Raspberry Pi, then if you get no devices at the I2C addresses of the LCD display, or RTC, just don't try to use them, and assume they are missing, this might be the solution to making OpenEVSE flexible, so it doesn't need to be compiled for specific hardware options, but checking for them during startup, and if found, uses them, if not, it functions without hanging/requiring a recompile.
http://learn.adafruit.com/adding-a-real-time-clock-to-raspberry-pi/wiring-the-rtc" onclick="window.open(this.href);return false;
BTW, I tried your code, and it works, except I don't have the RTC hardware yet, so erroneous time/date readings show up. A perfect case for testing to see if I2C device ID "68" is present, if not, disable the date/timers functionality.