Add 10 us low alarm pulse resets all slaves.

- Reimplement bus slave logic in assembly for optimized size
- Changed several functions to indicate return value using status
bits like ZERO for optimized checks.
- Implemented bus_slave_callhandler in assembly
Update test logic to properly test ASM version of bus logic
Add peripheral module for Interrupt on Change functionality
Properly clear IOC flag after checking
Disable IOC when we reflash so that we don't reset ourselves.
Remove legacy C versions of assembly file.
Remove duplicate status message
Increase pic12_executive serial number to reflect IOC addition
Update gsm module to use new pic12_executive API
Remove default reporting call
Remove alarm check for running application code

Upon ALARM assertion, all modules will reset automatically based
on the IOC interrupt implemented on the ALARM pins, so there is
no possibility of running application code (or any code) while the
alarm pin is down.
Implement reset delay to allow modules to reset themselves

Adds a 100 ms wait from the time ALARM is asserted to the time the
bus power goes off to allow chips to reset and clear all of their
pins.  This disables any additional circuitry on the bus that may
be power the bus parasitically when main power is cut and prevent
a proper reset sequence.
Fix RTCC to use internal RC oscillalator

The external crystal was not reliably working, leading to the RTCC
being enabled but not triggering scheduled callbacks because it
did not receive ticks from the crystal.
Fix modtool time command to use 1-base month and day

This is what the RTCC on the PIC24 reports.
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