Make rtcc not fill up task loop during long running tasks

This is a bug fix.  If there is a periodically scheduled task
with interval N and a task takes more than taskloop_size*N seconds,
the rtcc_alarm will add the_alarm_callback 32 times to the taskloop
without it ever running.  This fixes that by not adding a task to
the taskloop if the previous addition has not yet finished runing.
Redo timestamp generation to be more efficient

New implementation uses logarithmic lookup tables to avoid any
32 bit multiplications.  Implementation complexity is log(N) in the
number of bits required to represent the datetime and only uses
32 bit addition with a few small lookup tables.
Change sensor logging to use uint32 timestamps

This replaces using HH:MM:SS DD/MM/YY timestamps since time
delta compuatation is much faster with integral timestamps and there
is no loss of precision.
Reimplement timestamp generation and comparison

- Revert my previous implementation using lookup tables since 16x16
multiplication on pic24 is single cycle so there is no reason to
avoid it.
Reimplement construct report to avoid pointer math
Revert logarithmic table lookup routine