Integrating timer based control of main loop.
The main control loop now uses the timer facility instead of millis()
Added Modes.h, which provides macro constants for various control and operation modes.
Several subsystems had their own constants defined for these common enumerations.  This change creates a single set of constants that can be used anywhere.
Minor datalogging tweaks
Grate shake rewrite.

Grate shake logic has been completely re-written to support .1s control loop precision, and is also now much simpler and easier to read.
Grate fixup
Added duty cycle config
Fixed fault detection
Grate shaker and Ash Auger now fully configurable.