Add alarm support, and dead-mans heating cutoff

- Add alarm support via Spark.function
- Add alarm checking support in main loop()
- Add deadmans heating cutoff hardcoded at 45 minutes in main loop()
- Fix potential infinite timer jam, by using delay() in a hardware
interrupt