Fix setTime decl: Remove volt_low param.

This is introduced by another commit and accidentally
crept over.

Signed-off-by: Chris Evich <chris-arduino@anonomail.me>
Merge pull request #6 from Yewess/fix_setTime

Fix setTime decl: Remove volt_low param.
Add support for retrieving Volt-Low bit

* Access to this bit is critical to know whether
  or not the RTC's Vcc dropped below threshold
  and possibly corrupted date/time.  Setting
  the time will automatically clear this bit.

Signed-off-by: Chris Evich <chris-arduino@anonomail.me>
Add support for getting century value

Signed-off-by: Chris Evich <chris-arduino@anonomail.me>
Fix get/set date/time race condition

The datasheet explains that these devices will buffer the date+time
values for a maximum of 1 second, during which the entire date & time
values must be read all at once.  However, a race condition is possible
if the real time causes a change in date, in-between reading/writing
the time then date (separately).  In this way it is possible to silently
corrupt the date/time data on the chip.

Fortunately the solution is also suggested in the datasheet, and the
reason it buffers + locks the date/time values while reading:
Always reading/writing both in one atomic operation, and complete
it within 1-second (real time).

Added two new functions which perform setting/getting the date and
time in one single operation.  Also, to help with consistency between
control registers and date/time values, they are also retrieved
atomically.  To maintain compatibility with older code, the individual
date/time set/get functions were modified to simply wrap the new
functions, by first pre-retrieve the missing values.

Though the old functions now introduce a (very very) small chance for
local data corruption (dependent on get/set logic and timing), they're
guaranteed to never silently corrupt the device's data.  New code should
make use of the atomic getDateTime() or setDateTime() functions.

Signed-off-by: Chris Evich <chris-arduino@anonomail.me>
Update keywords.txt

Signed-off-by: Chris Evich <chris-arduino@anonomail.me>
Minor re-arranging of code + small fix

* Re-arranged header slightly, added comments
* Re-arranged implementation to match header, added comments
* Fixed some alarm retrieval functions to use getDateTime()

Signed-off-by: Chris Evich <chris-arduino@anonomail.me>
Add timer support + other minor fixes

* Implemented timer similar to alarm functions
* Modified time-critical accessor methods to operate from
  buffered values.  This avoids unnecessary i2c calls
  which could put other buffered values out of sync.

Signed-off-by: Chris Evich <chris-arduino@anonomail.me>
Minor code/style/indent cleanups